//
// PROJECT:  XCode2 WDM AVStream Minidriver
// FILENAME: xc2guids.h
// CREATED:  12 March 2004
// COMMENTS: all XC guids
//
// Copyright (c) 2004 VIXS Systems Inc. All rights reserved.
//
// ViXS Confidential material not for non-NDA distribution
//
// MODIFICATIONS:
//
// $Header: /cvs/gw/commwdm/include/xcguids.h,v 1.22 2006/06/16 14:52:50 mxue Exp $
//
//

#ifndef __XCGUIDS_H__INC_
#define __XCGUIDS_H__INC_


///////////////////////////////////////////////////////////////////////////////
// ViXS filter GUID's


#define XC_GUID_INDX_MASK      0xff000000
#define XC_GUID_INDX_SHIFT     24
#define XC_GUID_TYPE_MASK      0x000000ff
#define XC_GUID_TYPE_SHIFT     0

//===========================================================================

// These GUIDs represent dummy property sets implemented by the filter just for the
// purpose of linking property pages with the filter

// For Transcoder
#define STATIC_XC_TRANSCODER_VIDEO_PLUGIN_PAGE \
0xfbb43b29, 0x4904, 0x4910, 0x92, 0x46, 0xe9, 0x9, 0x93, 0x9, 0xa8, 0x7a
DEFINE_GUIDSTRUCT("FBB43B29-4904-4910-9246-E9099309A87A", XC_TRANSCODER_VIDEO_PLUGIN_PAGE);
#define XC_TRANSCODER_VIDEO_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_TRANSCODER_VIDEO_PLUGIN_PAGE)

#define STATIC_XC_TRANSCODER_SYSTEM_PLUGIN_PAGE \
0xb53e8520, 0xd575, 0x48d5, 0xba, 0x3a, 0xc9, 0x80, 0xdf, 0xde, 0x24, 0xce
DEFINE_GUIDSTRUCT("B53E8520-D575-48d5-BA3A-C980DFDE24CE", XC_TRANSCODER_SYSTEM_PLUGIN_PAGE);
#define XC_TRANSCODER_SYSTEM_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_TRANSCODER_SYSTEM_PLUGIN_PAGE)

// For Video Encoder
#define STATIC_XC_VIDEO_ENCODER_SETTINGS_PLUGIN_PAGE \
0x6c5070cc, 0xf867, 0x47d2, 0x95, 0x1e, 0x8f, 0x31, 0xce, 0xb1, 0x25, 0x1b
DEFINE_GUIDSTRUCT("6C5070CC-F867-47d2-951E-8F31CEB1251B", XC_VIDEO_ENCODER_SETTINGS_PLUGIN_PAGE);
#define XC_VIDEO_ENCODER_SETTINGS_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_VIDEO_ENCODER_SETTINGS_PLUGIN_PAGE)

// For Audio Encoder
#define STATIC_XC_AUDIO_ENCODER_SETTINGS_PLUGIN_PAGE \
0x37f256d8, 0xa6bc, 0x43fc, 0xa3, 0x8c, 0x1f, 0xfb, 0xd1, 0x32, 0xa, 0xe1
DEFINE_GUIDSTRUCT("37F256D8-A6BC-43fc-A38C-1FFBD1320AE1", XC_AUDIO_ENCODER_SETTINGS_PLUGIN_PAGE);
#define XC_AUDIO_ENCODER_SETTINGS_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_AUDIO_ENCODER_SETTINGS_PLUGIN_PAGE)

// For Multiplexer
#define STATIC_XC_SYSTEM_SETTINGS_PLUGIN_PAGE \
0xaf861c38, 0x84c9, 0x447c, 0x9a, 0xcd, 0x1a, 0xd7, 0x3d, 0x6, 0x6b, 0xc1
DEFINE_GUIDSTRUCT("AF861C38-84C9-447c-9ACD-1AD73D066BC1", XC_SYSTEM_SETTINGS_PLUGIN_PAGE);
#define XC_SYSTEM_SETTINGS_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_SYSTEM_SETTINGS_PLUGIN_PAGE)

// For Capture
#define STATIC_XC_CAPTURE_SETTINGS_PLUGIN_PAGE \
0xB18AAFC6, 0x4C27, 0x4803, 0xA6, 0x14, 0x22, 0xBB, 0x74, 0x44, 0xDB, 0x70
DEFINE_GUIDSTRUCT("B18AAFC6-4C27-4803-A614-22BB7444DB70", XC_CAPTURE_SETTINGS_PLUGIN_PAGE);
#define XC_CAPTURE_SETTINGS_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_CAPTURE_SETTINGS_PLUGIN_PAGE)

// For Filters
#define STATIC_XC_FILTERS_SETTINGS_PLUGIN_PAGE \
0x96101590, 0xA431, 0x4f76, 0xA4, 0x96, 0xF7, 0x58, 0x0A, 0x69, 0x5D, 0xA0
DEFINE_GUIDSTRUCT("96101590-A431-4f76-A496-F7580A695DA0", XC_FILTERS_SETTINGS_PLUGIN_PAGE);
#define XC_FILTERS_SETTINGS_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_FILTERS_SETTINGS_PLUGIN_PAGE)

//For Filter Ctrl Plug In
#define STATIC_XC_FILTER_CTRL_PLUGIN_PAGE \
0x70A25260, 0x66BB, 0x4AEB, 0xB0, 0x91, 0x44, 0xBA, 0x0E, 0xE3, 0x7D, 0x67
DEFINE_GUIDSTRUCT("70A25260-66BB-4AEB-B091-44BA0EE37D67", XC_FILTER_CTRL_PLUGIN_PAGE);
#define XC_FILTER_CTRL_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_FILTER_CTRL_PLUGIN_PAGE)

// Mirror Plug In page
#define STATIC_XC_MIRROR_PLUGIN_PAGE \
    0x1AF1BD35, 0xF843, 0x49CD, 0xA8, 0x71, 0xC0, 0xCD, 0xA0, 0x99, 0x5D, 0x57
DEFINE_GUIDSTRUCT("1AF1BD35-F843-49CD-A871-C0CDA0995D57", XC_MIRROR_PLUGIN_PAGE);
#define XC_MIRROR_PLUGIN_PAGE DEFINE_GUIDNAMED(XC_MIRROR_PLUGIN_PAGE)

// Max vbv Buffer Level
#define STATIC_XC_CAP_MAX_VBV_BUFFER_LEVEL \
    0x125C22A0, 0xA0CC, 0x4510, 0x99, 0x87, 0x68, 0xC7, 0x2B, 0x28, 0xB1, 0x22
DEFINE_GUIDSTRUCT("125C22A0-A0CC-4510-9987-68C72B28B122", XC_CAP_MAX_VBV_BUFFER_LEVEL);
#define XC_CAP_MAX_VBV_BUFFER_LEVEL DEFINE_GUIDNAMED(XC_CAP_MAX_VBV_BUFFER_LEVEL)


//===========================================================================

// These GUIDs represent custom property sets implemented by some filters
// and associated with KS Proxy plugins
// (i.e. if a filter that exposes one of these custom interfaces is loaded than
// the associated KS Proxy plugin is automatically loaded)

// For copy protection

#define STATIC_XC_COPYPROTECTION_PLUGIN \
0x2a52b873, 0x1380, 0x477f, 0xb9, 0x8, 0x7f, 0x72, 0x89, 0xb7, 0x3a, 0x10
DEFINE_GUIDSTRUCT("2A52B873-1380-477f-B908-7F7289B73A10", XC_COPYPROTECTION_PLUGIN);
#define XC_COPYPROTECTION_PLUGIN DEFINE_GUIDNAMED(XC_COPYPROTECTION_PLUGIN)

typedef enum
{
    KSPROPERTY_XC_MACROVISION
} KSPROPERTY_XC_COPYPROTECTION_IDS;

// For XC2Config

#define STATIC_XC_CONFIG_PLUGIN \
0x9ebd1cc, 0x8fc4, 0x4b45, 0x8a, 0xc2, 0x42, 0xd2, 0x50, 0xba, 0xa2, 0x92
DEFINE_GUIDSTRUCT("09EBD1CC-8FC4-4b45-8AC2-42D250BAA292", XC_CONFIG_PLUGIN);
#define XC_CONFIG_PLUGIN DEFINE_GUIDNAMED(XC_CONFIG_PLUGIN)


//===========================================================================


//********************//
//* 1st SET OF GUIDS *//
//********************//
#define STATIC_XC_1_ANLG_TUNER_FILTER  \
    0x01ab4601L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4601-ABDA-4e3d-A224-B9A3A9820650", XC_1_ANLG_TUNER_FILTER);
#define XC_1_ANLG_TUNER_FILTER DEFINE_GUIDNAMED(XC_1_ANLG_TUNER_FILTER)

#define STATIC_XC_1_TVAUDIO_FILTER     \
    0x01ab4602L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4602-ABDA-4e3d-A224-B9A3A9820650", XC_1_TVAUDIO_FILTER);
#define XC_1_TVAUDIO_FILTER DEFINE_GUIDNAMED(XC_1_TVAUDIO_FILTER)

#define STATIC_XC_1_XBAR_FILTER        \
    0x01ab4603L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4603-ABDA-4e3d-A224-B9A3A9820650", XC_1_XBAR_FILTER);
#define XC_1_XBAR_FILTER DEFINE_GUIDNAMED(XC_1_XBAR_FILTER)

#define STATIC_XC_1_CAPTURE_FILTER     \
    0x01ab4604L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4604-ABDA-4e3d-A224-B9A3A9820650", XC_1_CAPTURE_FILTER);
#define XC_1_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_1_CAPTURE_FILTER)

#define STATIC_XC_1_MUX_FILTER         \
    0x01ab4607L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4607-ABDA-4e3d-A224-B9A3A9820650", XC_1_MUX_FILTER);
#define XC_1_MUX_FILTER DEFINE_GUIDNAMED(XC_1_MUX_FILTER)
#define XC_1_ENCODER_FILTER DEFINE_GUIDNAMED(XC_1_MUX_FILTER)

#define STATIC_XC_1_YUV_CAPTURE_FILTER \
    0x01ab4609L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4609-ABDA-4e3d-A224-B9A3A9820650", XC_1_YUV_CAPTURE_FILTER);
#define XC_1_YUV_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_1_YUV_CAPTURE_FILTER)

#define STATIC_XC_1_PCM_CAPTURE_FILTER \
    0x01ab460cL, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB460C-ABDA-4e3d-A224-B9A3A9820650", XC_1_PCM_CAPTURE_FILTER);
#define XC_1_PCM_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_1_PCM_CAPTURE_FILTER)

//********************//
//* 2nd SET OF GUIDS *//
//********************//
#define STATIC_XC_2_ANLG_TUNER_FILTER  \
    0x02ab4601L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4601-ABDA-4e3d-A224-B9A3A9820650", XC_2_ANLG_TUNER_FILTER);
#define XC_2_ANLG_TUNER_FILTER DEFINE_GUIDNAMED(XC_2_ANLG_TUNER_FILTER)

#define STATIC_XC_2_TVAUDIO_FILTER     \
    0x02ab4602L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4602-ABDA-4e3d-A224-B9A3A9820650", XC_2_TVAUDIO_FILTER);
#define XC_2_TVAUDIO_FILTER DEFINE_GUIDNAMED(XC_2_TVAUDIO_FILTER)

#define STATIC_XC_2_XBAR_FILTER        \
    0x02ab4603L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4603-ABDA-4e3d-A224-B9A3A9820650", XC_2_XBAR_FILTER);
#define XC_2_XBAR_FILTER DEFINE_GUIDNAMED(XC_2_XBAR_FILTER)

#define STATIC_XC_2_CAPTURE_FILTER     \
    0x02ab4604L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4604-ABDA-4e3d-A224-B9A3A9820650", XC_2_CAPTURE_FILTER);
#define XC_2_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_2_CAPTURE_FILTER)

#define STATIC_XC_2_MUX_FILTER         \
    0x02ab4607L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4607-ABDA-4e3d-A224-B9A3A9820650", XC_2_MUX_FILTER);
#define XC_2_MUX_FILTER DEFINE_GUIDNAMED(XC_2_MUX_FILTER)
#define XC_2_ENCODER_FILTER DEFINE_GUIDNAMED(XC_2_MUX_FILTER)

#define STATIC_XC_2_YUV_CAPTURE_FILTER \
    0x02ab4609L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB4609-ABDA-4e3d-A224-B9A3A9820650", XC_2_YUV_CAPTURE_FILTER);
#define XC_2_YUV_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_2_YUV_CAPTURE_FILTER)

#define STATIC_XC_2_PCM_CAPTURE_FILTER \
    0x02ab460cL, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("02AB460C-ABDA-4e3d-A224-B9A3A9820650", XC_2_PCM_CAPTURE_FILTER);
#define XC_2_PCM_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_2_PCM_CAPTURE_FILTER)

//********************//
//* 3rd SET OF GUIDS *//
//********************//
#define STATIC_XC_3_ANLG_TUNER_FILTER  \
    0x03ab4601L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4601-ABDA-4e3d-A224-B9A3A9820650", XC_3_ANLG_TUNER_FILTER);
#define XC_3_ANLG_TUNER_FILTER DEFINE_GUIDNAMED(XC_3_ANLG_TUNER_FILTER)

#define STATIC_XC_3_TVAUDIO_FILTER     \
    0x03ab4602L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4602-ABDA-4e3d-A224-B9A3A9820650", XC_3_TVAUDIO_FILTER);
#define XC_3_TVAUDIO_FILTER DEFINE_GUIDNAMED(XC_3_TVAUDIO_FILTER)

#define STATIC_XC_3_XBAR_FILTER        \
    0x03ab4603L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4603-ABDA-4e3d-A224-B9A3A9820650", XC_3_XBAR_FILTER);
#define XC_3_XBAR_FILTER DEFINE_GUIDNAMED(XC_3_XBAR_FILTER)

#define STATIC_XC_3_CAPTURE_FILTER     \
    0x03ab4604L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4604-ABDA-4e3d-A224-B9A3A9820650", XC_3_CAPTURE_FILTER);
#define XC_3_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_3_CAPTURE_FILTER)

#define STATIC_XC_3_MUX_FILTER         \
    0x03ab4607L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4607-ABDA-4e3d-A224-B9A3A9820650", XC_3_MUX_FILTER);
#define XC_3_MUX_FILTER DEFINE_GUIDNAMED(XC_3_MUX_FILTER)
#define XC_3_ENCODER_FILTER DEFINE_GUIDNAMED(XC_3_MUX_FILTER)

#define STATIC_XC_3_YUV_CAPTURE_FILTER     \
    0x03ab4609L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB4609-ABDA-4e3d-A224-B9A3A9820650", XC_3_YUV_CAPTURE_FILTER);
#define XC_3_YUV_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_3_YUV_CAPTURE_FILTER)

#define STATIC_XC_3_PCM_CAPTURE_FILTER \
    0x03ab460cL, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("03AB460C-ABDA-4e3d-A224-B9A3A9820650", XC_3_PCM_CAPTURE_FILTER);
#define XC_3_PCM_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_3_PCM_CAPTURE_FILTER)

//********************//
//* 4th SET OF GUIDS *//
//********************//
#define STATIC_XC_4_ANLG_TUNER_FILTER  \
    0x04ab4601L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4601-ABDA-4e3d-A224-B9A3A9820650", XC_4_ANLG_TUNER_FILTER);
#define XC_4_ANLG_TUNER_FILTER DEFINE_GUIDNAMED(XC_4_ANLG_TUNER_FILTER)

#define STATIC_XC_4_TVAUDIO_FILTER     \
    0x04ab4602L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4602-ABDA-4e3d-A224-B9A3A9820650", XC_4_TVAUDIO_FILTER);
#define XC_4_TVAUDIO_FILTER DEFINE_GUIDNAMED(XC_4_TVAUDIO_FILTER)

#define STATIC_XC_4_XBAR_FILTER        \
    0x04ab4603L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4603-ABDA-4e3d-A224-B9A3A9820650", XC_4_XBAR_FILTER);
#define XC_4_XBAR_FILTER DEFINE_GUIDNAMED(XC_4_XBAR_FILTER)

#define STATIC_XC_4_CAPTURE_FILTER     \
    0x04ab4604L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4604-ABDA-4e3d-A224-B9A3A9820650", XC_4_CAPTURE_FILTER);
#define XC_4_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_4_CAPTURE_FILTER)

#define STATIC_XC_4_MUX_FILTER         \
    0x04ab4607L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4607-ABDA-4e3d-A224-B9A3A9820650", XC_4_MUX_FILTER);
#define XC_4_MUX_FILTER DEFINE_GUIDNAMED(XC_4_MUX_FILTER)
#define XC_4_ENCODER_FILTER DEFINE_GUIDNAMED(XC_4_MUX_FILTER)

#define STATIC_XC_4_YUV_CAPTURE_FILTER \
    0x04ab4609L, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB4609-ABDA-4e3d-A224-B9A3A9820650", XC_4_YUV_CAPTURE_FILTER);
#define XC_4_YUV_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_4_YUV_CAPTURE_FILTER)

#define STATIC_XC_4_PCM_CAPTURE_FILTER \
    0x04ab460cL, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("04AB460C-ABDA-4e3d-A224-B9A3A9820650", XC_4_PCM_CAPTURE_FILTER);
#define XC_4_PCM_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_4_PCM_CAPTURE_FILTER)


#define XC_X_XCODE_FILTER_ID         0x00AA4608
#define XC_X_XCODE_FILTER_MASK       0x00FFFFFF


//************************//
//* TRANSCODER GUIDS     *//
//************************//
#define STATIC_XC_TRANS_FILTER       \
    0x01ab4608l, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("01AB4608-ABDA-4e3d-A224-B9A3A9820650", XC_TRANS_FILTER);
#define XC_TRANS_FILTER DEFINE_GUIDNAMED(XC_TRANS_FILTER)

//************************//
//* 1st SET OF BDA GUIDS *//
//************************//
#define STATIC_XC_1_BDA_TUNER_FILTER   \
    0x05ab460al, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("05AB460A-ABDA-4e3d-A224-B9A3A9820650", XC_1_BDA_TUNER_FILTER);
#define XC_1_BDA_TUNER_FILTER DEFINE_GUIDNAMED(XC_1_BDA_TUNER_FILTER)

#define STATIC_XC_1_BDA_CAPTURE_FILTER \
    0x05ab460bl, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("05AB460B-ABDA-4e3d-A224-B9A3A9820650", XC_1_BDA_CAPTURE_FILTER);
#define XC_1_BDA_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_1_BDA_CAPTURE_FILTER)

//************************//
//* 2nd SET OF BDA GUIDS *//
//************************//
#define STATIC_XC_2_BDA_TUNER_FILTER   \
    0x06ab460al, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("06AB460A-ABDA-4e3d-A224-B9A3A9820650", XC_2_BDA_TUNER_FILTER);
#define XC_2_BDA_TUNER_FILTER DEFINE_GUIDNAMED(XC_2_BDA_TUNER_FILTER)

#define STATIC_XC_2_BDA_CAPTURE_FILTER \
    0x06ab460bl, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("06AB460B-ABDA-4e3d-A224-B9A3A9820650", XC_2_BDA_CAPTURE_FILTER);
#define XC_2_BDA_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_2_BDA_CAPTURE_FILTER)

//************************//
//* 3rd SET OF BDA GUIDS *//
//************************//
#define STATIC_XC_3_BDA_TUNER_FILTER   \
    0x07ab460al, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("07AB460A-ABDA-4e3d-A224-B9A3A9820650", XC_3_BDA_TUNER_FILTER);
#define XC_3_BDA_TUNER_FILTER DEFINE_GUIDNAMED(XC_3_BDA_TUNER_FILTER)

#define STATIC_XC_3_BDA_CAPTURE_FILTER \
    0x07ab460bl, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("07AB460B-ABDA-4e3d-A224-B9A3A9820650", XC_3_BDA_CAPTURE_FILTER);
#define XC_3_BDA_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_3_BDA_CAPTURE_FILTER)

//************************//
//* 4th SET OF BDA GUIDS *//
//************************//
#define STATIC_XC_4_BDA_TUNER_FILTER   \
    0x08ab460al, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("08AB460A-ABDA-4e3d-A224-B9A3A9820650", XC_4_BDA_TUNER_FILTER);
#define XC_4_BDA_TUNER_FILTER DEFINE_GUIDNAMED(XC_4_BDA_TUNER_FILTER)

#define STATIC_XC_4_BDA_CAPTURE_FILTER \
    0x08ab460bl, 0xabda, 0x4e3d, 0xa2, 0x24, 0xb9, 0xa3, 0xa9, 0x82, 0x06, 0x50
DEFINE_GUIDSTRUCT("08AB460B-ABDA-4e3d-A224-B9A3A9820650", XC_4_BDA_CAPTURE_FILTER);
#define XC_4_BDA_CAPTURE_FILTER DEFINE_GUIDNAMED(XC_4_BDA_CAPTURE_FILTER)


///////////////////////////////////////////////////////////////////////////////
// ViXS pin name GUID's

#define STATIC_PINNAME_XC_ANALOG_AUDIO_IN \
    0xF11F1C0DL, 0x4ADF, 0x4b65, 0xAA, 0xE8, 0x1F, 0xB7, 0xA9, 0xE7, 0x03, 0x0C
DEFINE_GUIDSTRUCT("F11F1C0D-4ADF-4b65-AAE8-1FB7A9E7030C", PINNAME_XC_ANALOG_AUDIO_IN);
#define PINNAME_XC_ANALOG_AUDIO_IN DEFINE_GUIDNAMED(PINNAME_XC_ANALOG_AUDIO_IN)

#define STATIC_PINNAME_XC_VIDEO_OUT \
    0xcca45b86, 0x1e84, 0x4062, 0xaa, 0xbd, 0x55, 0xa4, 0xfd, 0x77, 0x5d, 0x69
DEFINE_GUIDSTRUCT("CCA45B86-1E84-4062-AABD-55A4FD775D69", PINNAME_XC_VIDEO_OUT);
#define PINNAME_XC_VIDEO_OUT DEFINE_GUIDNAMED(PINNAME_XC_VIDEO_OUT)

#define STATIC_PINNAME_XC_AUDIO_OUT \
    0x2d959638, 0x55f1, 0x43f8, 0x9b, 0xdf, 0xec, 0xfe, 0x78, 0x27, 0x69, 0x24
DEFINE_GUIDSTRUCT("2D959638-55F1-43f8-9BDF-ECFE78276924", PINNAME_XC_AUDIO_OUT);
#define PINNAME_XC_AUDIO_OUT DEFINE_GUIDNAMED(PINNAME_XC_AUDIO_OUT)

#define STATIC_PINNAME_XC_VIDEO_IN \
    0x22a8791f, 0xb7d4, 0x4f07, 0xbf, 0x65, 0xb4, 0xd8, 0x98, 0x46, 0x25, 0xfa
DEFINE_GUIDSTRUCT("22A8791F-B7D4-4f07-BF65-B4D8984625FA", PINNAME_XC_VIDEO_IN);
#define PINNAME_XC_VIDEO_IN DEFINE_GUIDNAMED(PINNAME_XC_VIDEO_IN)

#define STATIC_PINNAME_XC_AUDIO_IN \
    0xbc23eb0b, 0xc0c5, 0x421a, 0xb7, 0x3f, 0x1d, 0xe9, 0x6a, 0x89, 0x4c, 0x14
DEFINE_GUIDSTRUCT("BC23EB0B-C0C5-421a-B73F-1DE96A894C14", PINNAME_XC_AUDIO_IN);
#define PINNAME_XC_AUDIO_IN DEFINE_GUIDNAMED(PINNAME_XC_AUDIO_IN)

#define STATIC_PINNAME_XC_PS_OUT \
    0x9fe407ff, 0xa871, 0x48ef, 0x91, 0xb7, 0x27, 0xb3, 0xc6, 0x39, 0xe4, 0x3c
DEFINE_GUIDSTRUCT("9FE407FF-A871-48ef-91B7-27B3C639E43C", PINNAME_XC_PS_OUT);
#define PINNAME_XC_PS_OUT DEFINE_GUIDNAMED(PINNAME_XC_PS_OUT)

#define STATIC_PINNAME_XC_TS_OUT \
    0x5e70b3fa, 0x5d78, 0x451d, 0xae, 0x23, 0xf7, 0xe7, 0x80, 0xc8, 0x74, 0x79
DEFINE_GUIDSTRUCT("5E70B3FA-5D78-451d-AE23-F7E780C87479", PINNAME_XC_TS_OUT);
#define PINNAME_XC_TS_OUT DEFINE_GUIDNAMED(PINNAME_XC_TS_OUT)

#define STATIC_PINNAME_XC_VIDEO_ES_OUT \
    0x78cef501, 0x30d8, 0x4c83, 0x91, 0x58, 0x15, 0x88, 0xd6, 0xa4, 0x99, 0x91
DEFINE_GUIDSTRUCT("78CEF501-30D8-4c83-9158-1588D6A49991", PINNAME_XC_VIDEO_ES_OUT);
#define PINNAME_XC_VIDEO_ES_OUT DEFINE_GUIDNAMED(PINNAME_XC_VIDEO_ES_OUT)

#define STATIC_PINNAME_XC_AUDIO_ES_OUT \
    0xe75ffa01, 0x796a, 0x4ddf, 0x91, 0x76, 0xaa, 0x42, 0xd3, 0x41, 0xca, 0xe6
DEFINE_GUIDSTRUCT("E75FFA01-796A-4ddf-9176-AA42D341CAE6", PINNAME_XC_AUDIO_ES_OUT);
#define PINNAME_XC_AUDIO_ES_OUT DEFINE_GUIDNAMED(PINNAME_XC_AUDIO_ES_OUT)

#define STATIC_PINNAME_XC_RAW_VIDEO_OUT \
    0xaff68928, 0x2a3a, 0x4c7c, 0x90, 0xe2, 0xcb, 0xf2, 0x9, 0xea, 0x89, 0x5a
DEFINE_GUIDSTRUCT("AFF68928-2A3A-4c7c-90E2-CBF209EA895A", PINNAME_XC_RAW_VIDEO_OUT);
#define PINNAME_XC_RAW_VIDEO_OUT DEFINE_GUIDNAMED(PINNAME_XC_RAW_VIDEO_OUT)

#define STATIC_PINNAME_XC_RAW_VIDEO_PREVIEW \
    0x6b5fee7b, 0xa664, 0x408f, 0xb5, 0xb9, 0xb5, 0x42, 0x1a, 0x3b, 0x63, 0x3b
DEFINE_GUIDSTRUCT("6B5FEE7B-A664-408f-B5B9-B5421A3B633B", PINNAME_XC_RAW_VIDEO_PREVIEW);
#define PINNAME_XC_RAW_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_XC_RAW_VIDEO_PREVIEW)


#define STATIC_PINNAME_XC_RAW_AUDIO_OUT \
    0x2d95963b, 0x55f1, 0x43f8, 0x9b, 0xdf, 0xec, 0xfe, 0x78, 0x27, 0x69, 0x24
DEFINE_GUIDSTRUCT("2D95963B-55F1-43f8-9BDF-ECFE78276924", PINNAME_XC_RAW_AUDIO_OUT);
#define PINNAME_XC_RAW_AUDIO_OUT DEFINE_GUIDNAMED(PINNAME_XC_RAW_AUDIO_OUT)

#define STATIC_PINNAME_XC_VBI_OUT \
    0x45e4d70aL, 0x961, 0x4c36, 0xa7, 0xdc, 0xa4, 0x3f, 0x4e, 0x6e, 0x5e, 0x1d
DEFINE_GUIDSTRUCT("45E4D70A-0961-4c36-A7DC-A43F4E6E5E1D", PINNAME_XC_VBI_OUT);
#define PINNAME_XC_VBI_OUT DEFINE_GUIDNAMED(PINNAME_XC_VBI_OUT)

#define STATIC_PINNAME_XC_PS_IN \
    0x74602eb3, 0x5802, 0x47b3, 0xab, 0x96, 0x79, 0xa6, 0xfc, 0x83, 0x85, 0x7
DEFINE_GUIDSTRUCT("74602EB3-5802-47B3-AB96-79A6FC838507", PINNAME_XC_PS_IN);
#define PINNAME_XC_PS_IN DEFINE_GUIDNAMED(PINNAME_XC_PS_IN)

#define STATIC_PINNAME_XC_TS_IN \
    0x79f669da, 0x9f47, 0x4944, 0xa8, 0xba, 0xfc, 0x73, 0x4c, 0xf3, 0x57, 0xd3
DEFINE_GUIDSTRUCT("79F669DA-9F47-4944-A8BA-FC734CF357D3", PINNAME_XC_TS_IN);
#define PINNAME_XC_TS_IN DEFINE_GUIDNAMED(PINNAME_XC_TS_IN)

#define STATIC_PINNAME_XC_VIDEO_ES_IN \
    0xf61dc30d, 0x62c, 0x4ed3, 0x88, 0x39, 0xe7, 0x75, 0xec, 0xb4, 0x10, 0xef
DEFINE_GUIDSTRUCT("F61DC30D-062C-4ed3-8839-E775ECB410EF", PINNAME_XC_VIDEO_ES_IN);
#define PINNAME_XC_VIDEO_ES_IN DEFINE_GUIDNAMED(PINNAME_XC_VIDEO_ES_IN)

#define STATIC_PINNAME_XC_AUDIO_ES_IN \
    0xd6a41dd3, 0x49a4, 0x458f, 0x90, 0xeb, 0xec, 0x95, 0x33, 0x99, 0x34, 0xb6
DEFINE_GUIDSTRUCT("D6A41DD3-49A4-458f-90EB-EC95339934B6", PINNAME_XC_AUDIO_ES_IN);
#define PINNAME_XC_AUDIO_ES_IN DEFINE_GUIDNAMED(PINNAME_XC_AUDIO_ES_IN)

#define STATIC_PINNAME_XC_RAW_VIDEO_IN \
    0x87ba8cfd, 0x5994, 0x4302, 0xbc, 0x22, 0x92, 0x29, 0xde, 0x98, 0xb9, 0x9f
DEFINE_GUIDSTRUCT("87BA8CFD-5994-4302-BC22-9229DE98B99F", PINNAME_XC_RAW_VIDEO_IN);
#define PINNAME_XC_RAW_VIDEO_IN DEFINE_GUIDNAMED(PINNAME_XC_RAW_VIDEO_IN)

#define STATIC_PINNAME_XC_RAW_AUDIO_IN \
    0x10f08df4, 0x59bb, 0x43cc, 0x9a, 0x11, 0x9f, 0x5a, 0x46, 0xcc, 0x8e, 0x14
DEFINE_GUIDSTRUCT("10F08DF4-59BB-43cc-9A11-9F5A46CC8E14", PINNAME_XC_RAW_AUDIO_IN);
#define PINNAME_XC_RAW_AUDIO_IN DEFINE_GUIDNAMED(PINNAME_XC_RAW_AUDIO_IN)

#define STATIC_PINNAME_XC_ANTENNA_IN \
    0x2834fa6a, 0xab7b, 0x43c2, 0xa6, 0xf7, 0x45, 0x63, 0x22, 0x6d, 0x6d, 0x57
DEFINE_GUIDSTRUCT("2834FA6A-AB7B-43c2-A6F7-4563226D6D57", PINNAME_XC_ANTENNA_IN);
#define PINNAME_XC_ANTENNA_IN DEFINE_GUIDNAMED(PINNAME_XC_ANTENNA_IN)


// {958473E7-BBEF-4605-B1BE-6370AB2E847A}
#define STATIC_XC_XBAR_IN_TUNER    \
    0x958473e7L, 0xbbef, 0x4605, 0xb1, 0xbe, 0x63, 0x70, 0xab, 0x2e, 0x84, 0x7a
DEFINE_GUIDSTRUCT("958473E7-BBEF-4605-B1BE-6370AB2E847A", XC_XBAR_IN_TUNER);
#define XC_XBAR_IN_TUNER DEFINE_GUIDNAMED(XC_XBAR_IN_TUNER)

// {3C8E8FED-80BA-4a88-88E8-31352AFDD6F3}
#define STATIC_XC_XBAR_IN_TUNER_VIDEO  \
    0x3c8e8fedL, 0x80ba, 0x4a88, 0x88, 0xe8, 0x31, 0x35, 0x2a, 0xfd, 0xd6, 0xf3
DEFINE_GUIDSTRUCT("3C8E8FED-80BA-4a88-88E8-31352AFDD6F3", XC_XBAR_IN_TUNER_VIDEO);
#define XC_XBAR_IN_TUNER_VIDEO DEFINE_GUIDNAMED(XC_XBAR_IN_TUNER_VIDEO)

// {E312444E-4237-4f29-802B-4081FE753508}
#define STATIC_XC_XBAR_IN_COMPOSITE    \
    0xe312444eL, 0x4237, 0x4f29, 0x80, 0x2b, 0x40, 0x81, 0xfe, 0x75, 0x35, 0x8
DEFINE_GUIDSTRUCT("E312444E-4237-4f29-802B-4081FE753508", XC_XBAR_IN_COMPOSITE);
#define XC_XBAR_IN_COMPOSITE DEFINE_GUIDNAMED(XC_XBAR_IN_COMPOSITE)

// {F6CC2021-7627-468a-8833-DCFD2630B495}
#define STATIC_XC_XBAR_IN_COMPOSITE_VIDEO  \
    0xf6cc2021L, 0x7627, 0x468a, 0x88, 0x33, 0xdc, 0xfd, 0x26, 0x30, 0xb4, 0x95
DEFINE_GUIDSTRUCT("F6CC2021-7627-468a-8833-DCFD2630B495", XC_XBAR_IN_COMPOSITE_VIDEO);
#define XC_XBAR_IN_COMPOSITE_VIDEO DEFINE_GUIDNAMED(XC_XBAR_IN_COMPOSITE_VIDEO)

// {97D40C8A-58A2-475b-A27F-8FF623D2EDB5}
#define STATIC_XC_XBAR_IN_SVIDEO   \
    0x97d40c8aL, 0x58a2, 0x475b, 0xa2, 0x7f, 0x8f, 0xf6, 0x23, 0xd2, 0xed, 0xb5
DEFINE_GUIDSTRUCT("97D40C8A-58A2-475b-A27F-8FF623D2EDB5", XC_XBAR_IN_SVIDEO);
#define XC_XBAR_IN_SVIDEO DEFINE_GUIDNAMED(XC_XBAR_IN_SVIDEO)

// {93B36BBA-ABD4-4b17-A0EA-1D3E6E023707}
#define STATIC_XC_XBAR_IN_SVIDEO_VIDEO \
    0x93b36bbaL, 0xabd4, 0x4b17, 0xa0, 0xea, 0x1d, 0x3e, 0x6e, 0x2, 0x37, 0x7
DEFINE_GUIDSTRUCT("93B36BBA-ABD4-4b17-A0EA-1D3E6E023707", XC_XBAR_IN_SVIDEO_VIDEO);
#define XC_XBAR_IN_SVIDEO_VIDEO DEFINE_GUIDNAMED(XC_XBAR_IN_SVIDEO_VIDEO)

// {5BCDED5D-26F3-4b66-91DB-915A49385DDA}
#define STATIC_XC_XBAR_IN_TUNER_AUDIO  \
    0x5bcded5dL, 0x26f3, 0x4b66, 0x91, 0xdb, 0x91, 0x5a, 0x49, 0x38, 0x5d, 0xda
DEFINE_GUIDSTRUCT("5BCDED5D-26F3-4b66-91DB-915A49385DDA", XC_XBAR_IN_TUNER_AUDIO);
#define XC_XBAR_IN_TUNER_AUDIO DEFINE_GUIDNAMED(XC_XBAR_IN_TUNER_AUDIO)

// {D413081C-EB74-485e-9F19-44D7195DA080}
#define STATIC_XC_XBAR_IN_COMPOSITE_AUDIO  \
    0xd413081cL, 0xeb74, 0x485e, 0x9f, 0x19, 0x44, 0xd7, 0x19, 0x5d, 0xa0, 0x80
DEFINE_GUIDSTRUCT("D413081C-EB74-485e-9F19-44D7195DA080", XC_XBAR_IN_COMPOSITE_AUDIO);
#define XC_XBAR_IN_COMPOSITE_AUDIO DEFINE_GUIDNAMED(XC_XBAR_IN_COMPOSITE_AUDIO)

// {1E33BC52-85AB-4aca-B6BF-D089F8A00CC3}
#define STATIC_XC_XBAR_IN_SVIDEO_AUDIO \
    0x1e33bc52L, 0x85ab, 0x4aca, 0xb6, 0xbf, 0xd0, 0x89, 0xf8, 0xa0, 0xc, 0xc3
DEFINE_GUIDSTRUCT("1E33BC52-85AB-4aca-B6BF-D089F8A00CC3", XC_XBAR_IN_SVIDEO_AUDIO);
#define XC_XBAR_IN_SVIDEO_AUDIO DEFINE_GUIDNAMED(XC_XBAR_IN_SVIDEO_AUDIO)

// {0079ED6C-8AFA-4f21-93DD-E040A150A18F}
#define STATIC_XC_XBAR_OUT \
    0x0079ed6cL, 0x8afa, 0x4f21, 0x93, 0xdd, 0xe0, 0x40, 0xa1, 0x50, 0xa1, 0x8f
DEFINE_GUIDSTRUCT("0079ED6C-8AFA-4f21-93DD-E040A150A18F", XC_XBAR_OUT);
#define XC_XBAR_OUT DEFINE_GUIDNAMED(XC_XBAR_OUT)

// {94B524F3-2D4D-4cd1-B233-3B6C48151BD8}
#define STATIC_XC_XBAR_OUT_VIDEO   \
    0x94b524f3L, 0x2d4d, 0x4cd1, 0xb2, 0x33, 0x3b, 0x6c, 0x48, 0x15, 0x1b, 0xd8
DEFINE_GUIDSTRUCT("94B524F3-2D4D-4cd1-B233-3B6C48151BD8", XC_XBAR_OUT_VIDEO);
#define XC_XBAR_OUT_VIDEO DEFINE_GUIDNAMED(XC_XBAR_OUT_VIDEO)

// {499A5400-FF51-40ee-8AD1-E500D9C52AA1}
#define STATIC_XC_XBAR_OUT_AUDIO   \
    0x499a5400L, 0xff51, 0x40ee, 0x8a, 0xd1, 0xe5, 0x0, 0xd9, 0xc5, 0x2a, 0xa1
DEFINE_GUIDSTRUCT("499A5400-FF51-40ee-8AD1-E500D9C52AA1", XC_XBAR_OUT_AUDIO);
#define XC_XBAR_OUT_AUDIO DEFINE_GUIDNAMED(XC_XBAR_OUT_AUDIO)


///////////////////////////////////////////////////////////////////////////////
// ViXS pin medium guida

// no connect
#define STATIC_XCMEDIUM_NO_CONNECT_IN \
    0x0183a600, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A600-8F29-4C54-A393-1A29BDA5BD04", XCMEDIUM_NO_CONNECT_IN);
#define XCMEDIUM_NO_CONNECT_IN DEFINE_GUIDNAMED(XCMEDIUM_NO_CONNECT_IN)

// TV audio in
#define STATIC_XC_1_MEDIUM_TV_AUDIO_IN \
    0x0183a601, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A601-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_TV_AUDIO_IN);
#define XC_1_MEDIUM_TV_AUDIO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_TV_AUDIO_IN)

#define STATIC_XC_2_MEDIUM_TV_AUDIO_IN \
    0x0283a601, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A601-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_TV_AUDIO_IN);
#define XC_2_MEDIUM_TV_AUDIO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_TV_AUDIO_IN)

#define STATIC_XC_3_MEDIUM_TV_AUDIO_IN \
    0x0383a601, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A601-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_TV_AUDIO_IN);
#define XC_3_MEDIUM_TV_AUDIO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_TV_AUDIO_IN)

#define STATIC_XC_4_MEDIUM_TV_AUDIO_IN \
    0x0483a601, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A601-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_TV_AUDIO_IN);
#define XC_4_MEDIUM_TV_AUDIO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_TV_AUDIO_IN)

// Crossbar tuner audio in
#define STATIC_XC_1_MEDIUM_TUNER_AUDIO_IN \
    0x0183a602, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A602-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_TUNER_AUDIO_IN);
#define XC_1_MEDIUM_TUNER_AUDIO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_TUNER_AUDIO_IN)

#define STATIC_XC_2_MEDIUM_TUNER_AUDIO_IN \
    0x0283a602, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A602-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_TUNER_AUDIO_IN);
#define XC_2_MEDIUM_TUNER_AUDIO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_TUNER_AUDIO_IN)

#define STATIC_XC_3_MEDIUM_TUNER_AUDIO_IN \
    0x0383a602, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A602-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_TUNER_AUDIO_IN);
#define XC_3_MEDIUM_TUNER_AUDIO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_TUNER_AUDIO_IN)

#define STATIC_XC_4_MEDIUM_TUNER_AUDIO_IN \
    0x0483a602, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A602-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_TUNER_AUDIO_IN);
#define XC_4_MEDIUM_TUNER_AUDIO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_TUNER_AUDIO_IN)

// Capture audio in
#define STATIC_XC_1_MEDIUM_CAPTURE_AUDIO_IN \
    0x0183a603, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A603-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_CAPTURE_AUDIO_IN);
#define XC_1_MEDIUM_CAPTURE_AUDIO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_CAPTURE_AUDIO_IN)

#define STATIC_XC_2_MEDIUM_CAPTURE_AUDIO_IN \
    0x0283a603, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A603-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_CAPTURE_AUDIO_IN);
#define XC_2_MEDIUM_CAPTURE_AUDIO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_CAPTURE_AUDIO_IN)

#define STATIC_XC_3_MEDIUM_CAPTURE_AUDIO_IN \
    0x0383a603, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A603-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_CAPTURE_AUDIO_IN);
#define XC_3_MEDIUM_CAPTURE_AUDIO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_CAPTURE_AUDIO_IN)

#define STATIC_XC_4_MEDIUM_CAPTURE_AUDIO_IN \
    0x0483a603, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A603-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_CAPTURE_AUDIO_IN);
#define XC_4_MEDIUM_CAPTURE_AUDIO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_CAPTURE_AUDIO_IN)

// Encoder audio in
#define STATIC_XC_1_MEDIUM_ENCODER_AUDIO_IN \
    0x0183a604, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A604-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_ENCODER_AUDIO_IN);
#define XC_1_MEDIUM_ENCODER_AUDIO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_ENCODER_AUDIO_IN)

#define STATIC_XC_2_MEDIUM_ENCODER_AUDIO_IN \
    0x0283a604, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A604-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_ENCODER_AUDIO_IN);
#define XC_2_MEDIUM_ENCODER_AUDIO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_ENCODER_AUDIO_IN)

#define STATIC_XC_3_MEDIUM_ENCODER_AUDIO_IN \
    0x0383a604, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A604-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_ENCODER_AUDIO_IN);
#define XC_3_MEDIUM_ENCODER_AUDIO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_ENCODER_AUDIO_IN)

#define STATIC_XC_4_MEDIUM_ENCODER_AUDIO_IN \
    0x0483a604, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A604-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_ENCODER_AUDIO_IN);
#define XC_4_MEDIUM_ENCODER_AUDIO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_ENCODER_AUDIO_IN)

// Multiplexer audio in
#define STATIC_XC_1_MEDIUM_MUX_AUDIO_IN \
    0x0183a605, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A605-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_MUX_AUDIO_IN);
#define XC_1_MEDIUM_MUX_AUDIO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_MUX_AUDIO_IN)

#define STATIC_XC_2_MEDIUM_MUX_AUDIO_IN \
    0x0283a605, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A605-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_MUX_AUDIO_IN);
#define XC_2_MEDIUM_MUX_AUDIO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_MUX_AUDIO_IN)

#define STATIC_XC_3_MEDIUM_MUX_AUDIO_IN \
    0x0383a605, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A605-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_MUX_AUDIO_IN);
#define XC_3_MEDIUM_MUX_AUDIO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_MUX_AUDIO_IN)

#define STATIC_XC_4_MEDIUM_MUX_AUDIO_IN \
    0x0483a605, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A605-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_MUX_AUDIO_IN);
#define XC_4_MEDIUM_MUX_AUDIO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_MUX_AUDIO_IN)

// Crossbar tuner video in
#define STATIC_XC_1_MEDIUM_TUNER_VIDEO_IN \
    0x0183a606, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A606-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_TUNER_VIDEO_IN);
#define XC_1_MEDIUM_TUNER_VIDEO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_TUNER_VIDEO_IN)

#define STATIC_XC_2_MEDIUM_TUNER_VIDEO_IN \
    0x0283a606, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A606-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_TUNER_VIDEO_IN);
#define XC_2_MEDIUM_TUNER_VIDEO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_TUNER_VIDEO_IN)

#define STATIC_XC_3_MEDIUM_TUNER_VIDEO_IN \
    0x0383a606, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A606-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_TUNER_VIDEO_IN);
#define XC_3_MEDIUM_TUNER_VIDEO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_TUNER_VIDEO_IN)

#define STATIC_XC_4_MEDIUM_TUNER_VIDEO_IN \
    0x0483a606, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A606-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_TUNER_VIDEO_IN);
#define XC_4_MEDIUM_TUNER_VIDEO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_TUNER_VIDEO_IN)

// Capture video in
#define STATIC_XC_1_MEDIUM_CAPTURE_VIDEO_IN \
    0x0183a607, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A607-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_CAPTURE_VIDEO_IN);
#define XC_1_MEDIUM_CAPTURE_VIDEO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_CAPTURE_VIDEO_IN)

#define STATIC_XC_2_MEDIUM_CAPTURE_VIDEO_IN \
    0x0283a607, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A607-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_CAPTURE_VIDEO_IN);
#define XC_2_MEDIUM_CAPTURE_VIDEO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_CAPTURE_VIDEO_IN)

#define STATIC_XC_3_MEDIUM_CAPTURE_VIDEO_IN \
    0x0383a607, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A607-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_CAPTURE_VIDEO_IN);
#define XC_3_MEDIUM_CAPTURE_VIDEO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_CAPTURE_VIDEO_IN)

#define STATIC_XC_4_MEDIUM_CAPTURE_VIDEO_IN \
    0x0483a607, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A607-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_CAPTURE_VIDEO_IN);
#define XC_4_MEDIUM_CAPTURE_VIDEO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_CAPTURE_VIDEO_IN)

// Encoder video in
#define STATIC_XC_1_MEDIUM_ENCODER_VIDEO_IN \
    0x0183a608, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A608-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_ENCODER_VIDEO_IN);
#define XC_1_MEDIUM_ENCODER_VIDEO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_ENCODER_VIDEO_IN)

#define STATIC_XC_2_MEDIUM_ENCODER_VIDEO_IN \
    0x0283a608, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A608-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_ENCODER_VIDEO_IN);
#define XC_2_MEDIUM_ENCODER_VIDEO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_ENCODER_VIDEO_IN)

#define STATIC_XC_3_MEDIUM_ENCODER_VIDEO_IN \
    0x0383a608, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A608-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_ENCODER_VIDEO_IN);
#define XC_3_MEDIUM_ENCODER_VIDEO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_ENCODER_VIDEO_IN)

#define STATIC_XC_4_MEDIUM_ENCODER_VIDEO_IN \
    0x0483a608, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A608-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_ENCODER_VIDEO_IN);
#define XC_4_MEDIUM_ENCODER_VIDEO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_ENCODER_VIDEO_IN)

// Multiplexer video in
#define STATIC_XC_1_MEDIUM_MUX_VIDEO_IN \
    0x0183a609, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A609-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_MUX_VIDEO_IN);
#define XC_1_MEDIUM_MUX_VIDEO_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_MUX_VIDEO_IN)

#define STATIC_XC_2_MEDIUM_MUX_VIDEO_IN \
    0x0283a609, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A609-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_MUX_VIDEO_IN);
#define XC_2_MEDIUM_MUX_VIDEO_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_MUX_VIDEO_IN)

#define STATIC_XC_3_MEDIUM_MUX_VIDEO_IN \
    0x0383a609, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A609-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_MUX_VIDEO_IN);
#define XC_3_MEDIUM_MUX_VIDEO_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_MUX_VIDEO_IN)

#define STATIC_XC_4_MEDIUM_MUX_VIDEO_IN \
    0x0483a609, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A609-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_MUX_VIDEO_IN);
#define XC_4_MEDIUM_MUX_VIDEO_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_MUX_VIDEO_IN)

// BDA capture transport in
#define STATIC_XC_1_MEDIUM_BDA_TRANSPORT_IN \
    0x0183a60a, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0183A60A-8F29-4C54-A393-1A29BDA5BD04", XC_1_MEDIUM_BDA_TRANSPORT_IN);
#define XC_1_MEDIUM_BDA_TRANSPORT_IN DEFINE_GUIDNAMED(XC_1_MEDIUM_BDA_TRANSPORT_IN)

#define STATIC_XC_2_MEDIUM_BDA_TRANSPORT_IN \
    0x0283a60a, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0283A60A-8F29-4C54-A393-1A29BDA5BD04", XC_2_MEDIUM_BDA_TRANSPORT_IN);
#define XC_2_MEDIUM_BDA_TRANSPORT_IN DEFINE_GUIDNAMED(XC_2_MEDIUM_BDA_TRANSPORT_IN)

#define STATIC_XC_3_MEDIUM_BDA_TRANSPORT_IN \
    0x0383a60a, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0383A60A-8F29-4C54-A393-1A29BDA5BD04", XC_3_MEDIUM_BDA_TRANSPORT_IN);
#define XC_3_MEDIUM_BDA_TRANSPORT_IN DEFINE_GUIDNAMED(XC_3_MEDIUM_BDA_TRANSPORT_IN)

#define STATIC_XC_4_MEDIUM_BDA_TRANSPORT_IN \
    0x0483a60a, 0x8f29, 0x4c54, 0xa3, 0x93, 0x1a, 0x29, 0xbd, 0xa5, 0xbd, 0x04
DEFINE_GUIDSTRUCT("0483A60A-8F29-4C54-A393-1A29BDA5BD04", XC_4_MEDIUM_BDA_TRANSPORT_IN);
#define XC_4_MEDIUM_BDA_TRANSPORT_IN DEFINE_GUIDNAMED(XC_4_MEDIUM_BDA_TRANSPORT_IN)


///////////////////////////////////////////////////////////////////////////////
// Custom ViXS media types

// ViXS stream major media type GUID
#define STATIC_VIXSDATAFORMAT_SUBTYPE_ES_VIDEO \
    0xC453B1EBL, 0x212D, 0x4aea, 0xA6, 0xD1, 0xA9, 0x3C, 0x54, 0x40, 0x87, 0x42
DEFINE_GUIDSTRUCT("C453B1EB-212D-4aea-A6D1-A93C54408742", VIXSDATAFORMAT_SUBTYPE_ES_VIDEO);
#define VIXSDATAFORMAT_SUBTYPE_ES_VIDEO DEFINE_GUIDNAMED(VIXSDATAFORMAT_SUBTYPE_ES_VIDEO)

// ViXS stream sub media type GUID
#define STATIC_VIXSDATAFORMAT_SUBTYPE_ES_AUDIO \
    0xD0AEC510L, 0xE751, 0x42ec, 0xBB, 0x39, 0xE2, 0x9C, 0x7F, 0x45, 0x5B, 0xBD
DEFINE_GUIDSTRUCT("D0AEC510-E751-42ec-BB39-E29C7F455BBD", VIXSDATAFORMAT_SUBTYPE_ES_AUDIO);
#define VIXSDATAFORMAT_SUBTYPE_ES_AUDIO DEFINE_GUIDNAMED(VIXSDATAFORMAT_SUBTYPE_ES_AUDIO)

///////////////////////////////////////////////////////////////////////////////
// Custom ViXS capability GUID's

// Video caps
#define STATIC_XC2_CAP_VIDEO_TYPE \
    0xaf63d90dL, 0x300f, 0x41ca, 0xb5, 0x6b, 0xbc, 0xfd, 0x56, 0xff, 0xfe, 0x9e
DEFINE_GUIDSTRUCT("AF63D90D-300F-41ca-B56B-BCFD56FFFE9E", XC2_CAP_VIDEO_TYPE);
#define XC2_CAP_VIDEO_TYPE DEFINE_GUIDNAMED(XC2_CAP_VIDEO_TYPE)
#define STATIC_XC_CAP_VIDEO_TYPE \
    0xaf63d90dL, 0x300f, 0x41ca, 0xb5, 0x6b, 0xbc, 0xfd, 0x56, 0xff, 0xfe, 0x9e
DEFINE_GUIDSTRUCT("AF63D90D-300F-41ca-B56B-BCFD56FFFE9E", XC_CAP_VIDEO_TYPE);
#define XC_CAP_VIDEO_TYPE DEFINE_GUIDNAMED(XC_CAP_VIDEO_TYPE)

#define STATIC_XC2_CAP_VIDEO_BITRATE \
    0x1bbb68b5L, 0x0667, 0x47be, 0x8e, 0xe7, 0xa6, 0x48, 0x49, 0x78, 0x6c, 0x7b
DEFINE_GUIDSTRUCT("1BBB68B5-0667-47be-8EE7-A64849786C7B", XC2_CAP_VIDEO_BITRATE);
#define XC2_CAP_VIDEO_BITRATE DEFINE_GUIDNAMED(XC2_CAP_VIDEO_BITRATE)
#define STATIC_XC_CAP_VIDEO_BITRATE \
    0x1bbb68b5L, 0x0667, 0x47be, 0x8e, 0xe7, 0xa6, 0x48, 0x49, 0x78, 0x6c, 0x7b
DEFINE_GUIDSTRUCT("1BBB68B5-0667-47be-8EE7-A64849786C7B", XC_CAP_VIDEO_BITRATE);
#define XC_CAP_VIDEO_BITRATE DEFINE_GUIDNAMED(XC_CAP_VIDEO_BITRATE)

#define STATIC_XC2_CAP_VIDEO_PEAK_BITRATE \
    0x40d336b2L, 0x5752, 0x401a, 0x8f, 0x2f, 0xa2, 0xe0, 0xe3, 0xe0, 0x00, 0xbd
DEFINE_GUIDSTRUCT("40D336B2-5752-401a-8F2F-A2E0E3E000BD", XC2_CAP_VIDEO_PEAK_BITRATE);
#define XC2_CAP_VIDEO_PEAK_BITRATE DEFINE_GUIDNAMED(XC2_CAP_VIDEO_PEAK_BITRATE)
#define STATIC_XC_CAP_VIDEO_PEAK_BITRATE \
    0x40d336b2L, 0x5752, 0x401a, 0x8f, 0x2f, 0xa2, 0xe0, 0xe3, 0xe0, 0x00, 0xbd
DEFINE_GUIDSTRUCT("40D336B2-5752-401a-8F2F-A2E0E3E000BD", XC_CAP_VIDEO_PEAK_BITRATE);
#define XC_CAP_VIDEO_PEAK_BITRATE DEFINE_GUIDNAMED(XC_CAP_VIDEO_PEAK_BITRATE)

#define STATIC_XC2_CAP_VIDEO_BITRATE_MODE \
    0x5f9fdda2L, 0xa48a, 0x49a4, 0x8e, 0xd3, 0x82, 0xa8, 0xd5, 0x1d, 0x79, 0xd0
DEFINE_GUIDSTRUCT("5F9FDDA2-A48A-49a4-8ED3-82A8D51D79D0", XC2_CAP_VIDEO_BITRATE_MODE);
#define XC2_CAP_VIDEO_BITRATE_MODE DEFINE_GUIDNAMED(XC2_CAP_VIDEO_BITRATE_MODE)
#define STATIC_XC_CAP_VIDEO_BITRATE_MODE \
    0x5f9fdda2L, 0xa48a, 0x49a4, 0x8e, 0xd3, 0x82, 0xa8, 0xd5, 0x1d, 0x79, 0xd0
DEFINE_GUIDSTRUCT("5F9FDDA2-A48A-49a4-8ED3-82A8D51D79D0", XC_CAP_VIDEO_BITRATE_MODE);
#define XC_CAP_VIDEO_BITRATE_MODE DEFINE_GUIDNAMED(XC_CAP_VIDEO_BITRATE_MODE)

#define STATIC_XC2_CAP_VIDEO_FRATE \
    0x2b2486b3L, 0x9dd0, 0x4f8c, 0xa8, 0xc3, 0xe1, 0xe9, 0x96, 0xac, 0x6d, 0xd3
DEFINE_GUIDSTRUCT("2B2486B3-9DD0-4f8c-A8C3-E1E996AC6DD3", XC2_CAP_VIDEO_FRATE);
#define XC2_CAP_VIDEO_FRATE DEFINE_GUIDNAMED(XC2_CAP_VIDEO_FRATE)
#define STATIC_XC_CAP_VIDEO_FRATE \
    0x2b2486b3L, 0x9dd0, 0x4f8c, 0xa8, 0xc3, 0xe1, 0xe9, 0x96, 0xac, 0x6d, 0xd3
DEFINE_GUIDSTRUCT("2B2486B3-9DD0-4f8c-A8C3-E1E996AC6DD3", XC_CAP_VIDEO_FRATE);
#define XC_CAP_VIDEO_FRATE DEFINE_GUIDNAMED(XC_CAP_VIDEO_FRATE)

#define STATIC_XC2_CAP_VIDEO_DISP_HORZ \
    0xdc184580L, 0x8903, 0x4c2a, 0x9c, 0xc6, 0x7d, 0x10, 0x9b, 0xe7, 0x46, 0x17
DEFINE_GUIDSTRUCT("DC184580-8903-4c2a-9CC6-7D109BE74617", XC2_CAP_VIDEO_DISP_HORZ);
#define XC2_CAP_VIDEO_DISP_HORZ DEFINE_GUIDNAMED(XC2_CAP_VIDEO_DISP_HORZ)
#define STATIC_XC_CAP_VIDEO_DISP_HORZ \
    0xdc184580L, 0x8903, 0x4c2a, 0x9c, 0xc6, 0x7d, 0x10, 0x9b, 0xe7, 0x46, 0x17
DEFINE_GUIDSTRUCT("DC184580-8903-4c2a-9CC6-7D109BE74617", XC_CAP_VIDEO_DISP_HORZ);
#define XC_CAP_VIDEO_DISP_HORZ DEFINE_GUIDNAMED(XC_CAP_VIDEO_DISP_HORZ)

#define STATIC_XC2_CAP_VIDEO_DISP_VERT \
    0x473f0c1L, 0xefc7, 0x4a73, 0x98, 0x40, 0xda, 0x9e, 0xb7, 0xbb, 0xd2, 0x0c
DEFINE_GUIDSTRUCT("0473F0C1-EFC7-4a73-9840-DA9EB7BBD20C", XC2_CAP_VIDEO_DISP_VERT);
#define XC2_CAP_VIDEO_DISP_VERT DEFINE_GUIDNAMED(XC2_CAP_VIDEO_DISP_VERT)
#define STATIC_XC_CAP_VIDEO_DISP_VERT \
    0x473f0c1L, 0xefc7, 0x4a73, 0x98, 0x40, 0xda, 0x9e, 0xb7, 0xbb, 0xd2, 0x0c
DEFINE_GUIDSTRUCT("0473F0C1-EFC7-4a73-9840-DA9EB7BBD20C", XC_CAP_VIDEO_DISP_VERT);
#define XC_CAP_VIDEO_DISP_VERT DEFINE_GUIDNAMED(XC_CAP_VIDEO_DISP_VERT)

#define STATIC_XC2_CAP_GOP_N_P \
    0x451fe4e3L, 0x6a22, 0x4737, 0x8a, 0x7e, 0x0c, 0x86, 0x46, 0x85, 0x0e, 0xff
DEFINE_GUIDSTRUCT("451FE4E3-6A22-4737-8A7E-0C8646850EFF", XC2_CAP_GOP_N_P);
#define XC2_CAP_GOP_N_P DEFINE_GUIDNAMED(XC2_CAP_GOP_N_P)
#define STATIC_XC_CAP_GOP_N_P \
    0x451fe4e3L, 0x6a22, 0x4737, 0x8a, 0x7e, 0x0c, 0x86, 0x46, 0x85, 0x0e, 0xff
DEFINE_GUIDSTRUCT("451FE4E3-6A22-4737-8A7E-0C8646850EFF", XC_CAP_GOP_N_P);
#define XC_CAP_GOP_N_P DEFINE_GUIDNAMED(XC_CAP_GOP_N_P)

#define STATIC_XC2_CAP_GOP_N_B \
    0x9b2f7505L, 0x89d3, 0x40b5, 0xba, 0x0d, 0x2d, 0x98, 0x44, 0x36, 0x9c, 0xb8
DEFINE_GUIDSTRUCT("9B2F7505-89D3-40b5-BA0D-2D9844369CB8", XC2_CAP_GOP_N_B);
#define XC2_CAP_GOP_N_B DEFINE_GUIDNAMED(XC2_CAP_GOP_N_B)
#define STATIC_XC_CAP_GOP_N_B \
    0x9b2f7505L, 0x89d3, 0x40b5, 0xba, 0x0d, 0x2d, 0x98, 0x44, 0x36, 0x9c, 0xb8
DEFINE_GUIDSTRUCT("9B2F7505-89D3-40b5-BA0D-2D9844369CB8", XC_CAP_GOP_N_B);
#define XC_CAP_GOP_N_B DEFINE_GUIDNAMED(XC_CAP_GOP_N_B)

#define STATIC_XC2_CAP_CLOSED_GOP \
    0xb56cc661L, 0x1c76, 0x4be3, 0x9d, 0x16, 0xed, 0xa5, 0x39, 0x5d, 0x04, 0x09
DEFINE_GUIDSTRUCT("B56CC661-1C76-4be3-9D16-EDA5395D0409", XC2_CAP_CLOSED_GOP);
#define XC2_CAP_CLOSED_GOP DEFINE_GUIDNAMED(XC2_CAP_CLOSED_GOP)
#define STATIC_XC_CAP_CLOSED_GOP \
    0xb56cc661L, 0x1c76, 0x4be3, 0x9d, 0x16, 0xed, 0xa5, 0x39, 0x5d, 0x04, 0x09
DEFINE_GUIDSTRUCT("B56CC661-1C76-4be3-9D16-EDA5395D0409", XC_CAP_CLOSED_GOP);
#define XC_CAP_CLOSED_GOP DEFINE_GUIDNAMED(XC_CAP_CLOSED_GOP)

#define STATIC_XC2_CAP_MPEG4_PROFILE \
    0xb539cef1L, 0xbb18, 0x48c0, 0xbe, 0x13, 0xa2, 0x6c, 0x54, 0x07, 0x85, 0xbd
DEFINE_GUIDSTRUCT("B539CEF1-BB18-48c0-BE13-A26C540785BD", XC2_CAP_MPEG4_PROFILE);
#define XC2_CAP_MPEG4_PROFILE DEFINE_GUIDNAMED(XC2_CAP_MPEG4_PROFILE)
#define STATIC_XC_CAP_MPEG4_PROFILE \
    0xb539cef1L, 0xbb18, 0x48c0, 0xbe, 0x13, 0xa2, 0x6c, 0x54, 0x07, 0x85, 0xbd
DEFINE_GUIDSTRUCT("B539CEF1-BB18-48c0-BE13-A26C540785BD", XC_CAP_MPEG4_PROFILE);
#define XC_CAP_MPEG4_PROFILE DEFINE_GUIDNAMED(XC_CAP_MPEG4_PROFILE)

#define STATIC_XC2_CAP_MPEG4_LEVEL \
    0xaa1cb34f, 0x9268, 0x4e35, 0xb8, 0xc6, 0x67, 0x54, 0xfb, 0x9d, 0xb2, 0x73
DEFINE_GUIDSTRUCT("AA1CB34F-9268-4e35-B8C6-6754FB9DB273", XC2_CAP_MPEG4_LEVEL);
#define XC2_CAP_MPEG4_LEVEL DEFINE_GUIDNAMED(XC2_CAP_MPEG4_LEVEL)
#define STATIC_XC_CAP_MPEG4_LEVEL \
    0xaa1cb34f, 0x9268, 0x4e35, 0xb8, 0xc6, 0x67, 0x54, 0xfb, 0x9d, 0xb2, 0x73
DEFINE_GUIDSTRUCT("AA1CB34F-9268-4e35-B8C6-6754FB9DB273", XC_CAP_MPEG4_LEVEL);
#define XC_CAP_MPEG4_LEVEL DEFINE_GUIDNAMED(XC_CAP_MPEG4_LEVEL)

#define STATIC_XC2_CAP_ASPECT_RATIO \
    0xff3b77a2L, 0x9f14, 0x4be8, 0x9a, 0xaa, 0xa0, 0xaf, 0xac, 0x44, 0x99, 0x87
DEFINE_GUIDSTRUCT("FF3B77A2-9F14-4be8-9AAA-A0AFAC449987", XC2_CAP_ASPECT_RATIO);
#define XC2_CAP_ASPECT_RATIO DEFINE_GUIDNAMED(XC2_CAP_ASPECT_RATIO)
#define STATIC_XC_CAP_ASPECT_RATIO \
    0xff3b77a2L, 0x9f14, 0x4be8, 0x9a, 0xaa, 0xa0, 0xaf, 0xac, 0x44, 0x99, 0x87
DEFINE_GUIDSTRUCT("FF3B77A2-9F14-4be8-9AAA-A0AFAC449987", XC_CAP_ASPECT_RATIO);
#define XC_CAP_ASPECT_RATIO DEFINE_GUIDNAMED(XC_CAP_ASPECT_RATIO)

#define STATIC_XC2_CAP_MPEG4_ASPECT_RATIO \
    0x1D994E23, 0x7B80, 0x42C1, 0xB6, 0x30, 0xD4, 0xB7, 0x91, 0x33, 0x62, 0xED
DEFINE_GUIDSTRUCT("1D994E23-7B80-42C1-B630-D4B7913362ED", XC2_CAP_MPEG4_ASPECT_RATIO);
#define XC2_CAP_MPEG4_ASPECT_RATIO DEFINE_GUIDNAMED(XC2_CAP_MPEG4_ASPECT_RATIO)
#define STATIC_XC_CAP_MPEG4_ASPECT_RATIO \
    0x1D994E23, 0x7B80, 0x42C1, 0xB6, 0x30, 0xD4, 0xB7, 0x91, 0x33, 0x62, 0xED
DEFINE_GUIDSTRUCT("1D994E23-7B80-42C1-B630-D4B7913362ED", XC_CAP_MPEG4_ASPECT_RATIO);
#define XC_CAP_MPEG4_ASPECT_RATIO DEFINE_GUIDNAMED(XC_CAP_MPEG4_ASPECT_RATIO)

#define STATIC_XC2_CAP_VIDEO_FILTERING \
    0xd99e3773L, 0x6e7d, 0x4605, 0xa5, 0xf4, 0xc4, 0x2e, 0x92, 0x79, 0x5b, 0x61
DEFINE_GUIDSTRUCT("D99E3773-6E7D-4605-A5F4-C42E92795B61", XC2_CAP_VIDEO_FILTERING);
#define XC2_CAP_VIDEO_FILTERING DEFINE_GUIDNAMED(XC2_CAP_VIDEO_FILTERING)
#define STATIC_XC_CAP_VIDEO_FILTERING \
    0xd99e3773L, 0x6e7d, 0x4605, 0xa5, 0xf4, 0xc4, 0x2e, 0x92, 0x79, 0x5b, 0x61
DEFINE_GUIDSTRUCT("D99E3773-6E7D-4605-A5F4-C42E92795B61", XC_CAP_VIDEO_FILTERING);
#define XC_CAP_VIDEO_FILTERING DEFINE_GUIDNAMED(XC_CAP_VIDEO_FILTERING)

#define STATIC_XC2_CAP_TBC \
    0xbf3fdb81, 0xb00c, 0x4de4, 0x96, 0xb1, 0xdf, 0x1d, 0xa8, 0x38, 0xa2, 0x12
DEFINE_GUIDSTRUCT("BF3FDB81-B00C-4DE4-96B1-DF1DA838A212", XC2_CAP_TBC);
#define XC2_CAP_TBC DEFINE_GUIDNAMED(XC2_CAP_TBC)
#define STATIC_XC_CAP_TBC \
    0xbf3fdb81, 0xb00c, 0x4de4, 0x96, 0xb1, 0xdf, 0x1d, 0xa8, 0x38, 0xa2, 0x12
DEFINE_GUIDSTRUCT("BF3FDB81-B00C-4DE4-96B1-DF1DA838A212", XC_CAP_TBC);
#define XC_CAP_TBC DEFINE_GUIDNAMED(XC_CAP_TBC)

#define STATIC_XC2_CAP_3DYC_FILTER \
    0x215767e9, 0xa864, 0x4a47, 0x94, 0xff, 0x9e, 0xf2, 0x0f, 0x3f, 0xa1, 0x97
DEFINE_GUIDSTRUCT("215767E9-A864-4A47-94FF-9EF20F3FA197", XC2_CAP_3DYC_FILTER);
#define XC2_CAP_3DYC_FILTER DEFINE_GUIDNAMED(XC2_CAP_3DYC_FILTER)
#define STATIC_XC_CAP_3DYC_FILTER \
    0x215767e9, 0xa864, 0x4a47, 0x94, 0xff, 0x9e, 0xf2, 0x0f, 0x3f, 0xa1, 0x97
DEFINE_GUIDSTRUCT("215767E9-A864-4A47-94FF-9EF20F3FA197", XC_CAP_3DYC_FILTER);
#define XC_CAP_3DYC_FILTER DEFINE_GUIDNAMED(XC_CAP_3DYC_FILTER)

#define STATIC_XC2_CAP_INVERSE_TELECINE \
    0x77e2aec0, 0xe3aa, 0x4345, 0xa9, 0xd7, 0xc5, 0x1f, 0x79, 0xd6, 0x1a, 0xf2
DEFINE_GUIDSTRUCT("77E2AEC0-E3AA-4345-A9D7-C51F79D61AF2", XC2_CAP_INVERSE_TELECINE);
#define XC2_CAP_INVERSE_TELECINE DEFINE_GUIDNAMED(XC2_CAP_INVERSE_TELECINE)
#define STATIC_XC_CAP_INVERSE_TELECINE \
    0x77e2aec0, 0xe3aa, 0x4345, 0xa9, 0xd7, 0xc5, 0x1f, 0x79, 0xd6, 0x1a, 0xf2
DEFINE_GUIDSTRUCT("77E2AEC0-E3AA-4345-A9D7-C51F79D61AF2", XC_CAP_INVERSE_TELECINE);
#define XC_CAP_INVERSE_TELECINE DEFINE_GUIDNAMED(XC_CAP_INVERSE_TELECINE)

#define STATIC_XC2_CAP_VIDEO_OUT_ID \
    0xdb8f97c9L, 0x0a94, 0x4331, 0xbe, 0x4a, 0x12, 0x90, 0x8f, 0x02, 0xbb, 0x3a
DEFINE_GUIDSTRUCT("DB8F97C9-0A94-4331-BE4A-12908F02BB3A", XC2_CAP_VIDEO_OUT_ID);
#define XC2_CAP_VIDEO_OUT_ID DEFINE_GUIDNAMED(XC2_CAP_VIDEO_OUT_ID)
#define STATIC_XC_CAP_VIDEO_OUT_ID \
    0xdb8f97c9L, 0x0a94, 0x4331, 0xbe, 0x4a, 0x12, 0x90, 0x8f, 0x02, 0xbb, 0x3a
DEFINE_GUIDSTRUCT("DB8F97C9-0A94-4331-BE4A-12908F02BB3A", XC_CAP_VIDEO_OUT_ID);
#define XC_CAP_VIDEO_OUT_ID DEFINE_GUIDNAMED(XC_CAP_VIDEO_OUT_ID)

#define STATIC_XC2_CAP_VIDEO_IN_ID \
    0x1bbd0531, 0x68ad, 0x4894, 0x8b, 0xce, 0xb8, 0x90, 0x7c, 0x13, 0x5f, 0xae
DEFINE_GUIDSTRUCT("1BBD0531-68AD-4894-8BCE-B8907C135FAE", XC2_CAP_VIDEO_IN_ID);
#define XC2_CAP_VIDEO_IN_ID DEFINE_GUIDNAMED(XC2_CAP_VIDEO_IN_ID)
#define STATIC_XC_CAP_VIDEO_IN_ID \
    0x1bbd0531, 0x68ad, 0x4894, 0x8b, 0xce, 0xb8, 0x90, 0x7c, 0x13, 0x5f, 0xae
DEFINE_GUIDSTRUCT("1BBD0531-68AD-4894-8BCE-B8907C135FAE", XC_CAP_VIDEO_IN_ID);
#define XC_CAP_VIDEO_IN_ID DEFINE_GUIDNAMED(XC_CAP_VIDEO_IN_ID)

#define STATIC_XC2_CAP_SRC_TV_STANDARD \
    0x85305ad3L, 0x534e, 0x41dc, 0xb8, 0xc2, 0x44, 0x89, 0x51, 0xaf, 0x91, 0x7a
DEFINE_GUIDSTRUCT("85305AD3-534E-41dc-B8C2-448951AF917A", XC2_CAP_SRC_TV_STANDARD);
#define XC2_CAP_SRC_TV_STANDARD DEFINE_GUIDNAMED(XC2_CAP_SRC_TV_STANDARD)
#define STATIC_XC_CAP_SRC_TV_STANDARD \
    0x85305ad3L, 0x534e, 0x41dc, 0xb8, 0xc2, 0x44, 0x89, 0x51, 0xaf, 0x91, 0x7a
DEFINE_GUIDSTRUCT("85305AD3-534E-41dc-B8C2-448951AF917A", XC_CAP_SRC_TV_STANDARD);
#define XC_CAP_SRC_TV_STANDARD DEFINE_GUIDNAMED(XC_CAP_SRC_TV_STANDARD)

#define STATIC_XC2_CAP_VIDEO_FIELD_ORDER \
    0xf7040571, 0x8a70, 0x4044, 0xb2, 0x1a, 0xd1, 0x7a, 0x4a, 0x91, 0xeb, 0xe7
DEFINE_GUIDSTRUCT("F7040571-8A70-4044-B21A-D17A4A91EBE7", XC2_CAP_VIDEO_FIELD_ORDER);
#define XC2_CAP_VIDEO_FIELD_ORDER DEFINE_GUIDNAMED(XC2_CAP_VIDEO_FIELD_ORDER)
#define STATIC_XC_CAP_VIDEO_FIELD_ORDER \
    0xf7040571, 0x8a70, 0x4044, 0xb2, 0x1a, 0xd1, 0x7a, 0x4a, 0x91, 0xeb, 0xe7
DEFINE_GUIDSTRUCT("F7040571-8A70-4044-B21A-D17A4A91EBE7", XC_CAP_VIDEO_FIELD_ORDER);
#define XC_CAP_VIDEO_FIELD_ORDER DEFINE_GUIDNAMED(XC_CAP_VIDEO_FIELD_ORDER)

#define STATIC_XC2_CAP_CC_INSERT_MODE \
    0xc8db1002L, 0xf219, 0x4479, 0xb4, 0xb0, 0x43, 0x35, 0xf2, 0x07, 0xa7, 0x14
DEFINE_GUIDSTRUCT("C8DB1002-F219-4479-B4B0-4335F207A714", XC2_CAP_CC_INSERT_MODE);
#define XC2_CAP_CC_INSERT_MODE DEFINE_GUIDNAMED(XC2_CAP_CC_INSERT_MODE)
#define STATIC_XC_CAP_CC_INSERT_MODE \
    0xc8db1002L, 0xf219, 0x4479, 0xb4, 0xb0, 0x43, 0x35, 0xf2, 0x07, 0xa7, 0x14
DEFINE_GUIDSTRUCT("C8DB1002-F219-4479-B4B0-4335F207A714", XC_CAP_CC_INSERT_MODE);
#define XC_CAP_CC_INSERT_MODE DEFINE_GUIDNAMED(XC_CAP_CC_INSERT_MODE)

#define STATIC_XC2_CAP_DATA_INSERT_MODE \
    0x304b49e9, 0x5d72, 0x4a4a, 0x89, 0x80, 0x86, 0x15, 0xe0, 0xb6, 0xb6, 0x8f
DEFINE_GUIDSTRUCT("304B49E9-5D72-4A4A-8980-8615E0B6B68F", XC2_CAP_DATA_INSERT_MODE);
#define XC2_CAP_DATA_INSERT_MODE DEFINE_GUIDNAMED(XC2_CAP_DATA_INSERT_MODE)
#define STATIC_XC_CAP_DATA_INSERT_MODE \
    0x304b49e9, 0x5d72, 0x4a4a, 0x89, 0x80, 0x86, 0x15, 0xe0, 0xb6, 0xb6, 0x8f
DEFINE_GUIDSTRUCT("304B49E9-5D72-4A4A-8980-8615E0B6B68F", XC_CAP_DATA_INSERT_MODE);
#define XC_CAP_DATA_INSERT_MODE DEFINE_GUIDNAMED(XC_CAP_DATA_INSERT_MODE)


#define STATIC_XC2_CAP_PRIVATE_DATA_SIZE \
    0xe3c37a42L, 0xf22a, 0x4829, 0xb6, 0xc8, 0x56, 0x36, 0x9c, 0xf4, 0x20, 0x88
DEFINE_GUIDSTRUCT("E3C37A42-F22A-4829-B6C8-56369CF42088", XC2_CAP_PRIVATE_DATA_SIZE);
#define XC2_CAP_PRIVATE_DATA_SIZE DEFINE_GUIDNAMED(XC2_CAP_PRIVATE_DATA_SIZE)
#define STATIC_XC_CAP_PRIVATE_DATA_SIZE \
    0xe3c37a42L, 0xf22a, 0x4829, 0xb6, 0xc8, 0x56, 0x36, 0x9c, 0xf4, 0x20, 0x88
DEFINE_GUIDSTRUCT("E3C37A42-F22A-4829-B6C8-56369CF42088", XC_CAP_PRIVATE_DATA_SIZE);
#define XC_CAP_PRIVATE_DATA_SIZE DEFINE_GUIDNAMED(XC_CAP_PRIVATE_DATA_SIZE)

#define STATIC_XC2_CAP_PRIVATE_DATA \
    0xafaabbe2L, 0xd2c7, 0x42ee, 0x80, 0xb9, 0x74, 0x39, 0xb6, 0xa1, 0x61, 0xc3
DEFINE_GUIDSTRUCT("AFAABBE2-D2C7-42ee-80B9-7439B6A161C3", XC2_CAP_PRIVATE_DATA);
#define XC2_CAP_PRIVATE_DATA DEFINE_GUIDNAMED(XC2_CAP_PRIVATE_DATA)
#define STATIC_XC_CAP_PRIVATE_DATA \
    0xafaabbe2L, 0xd2c7, 0x42ee, 0x80, 0xb9, 0x74, 0x39, 0xb6, 0xa1, 0x61, 0xc3
DEFINE_GUIDSTRUCT("AFAABBE2-D2C7-42ee-80B9-7439B6A161C3", XC_CAP_PRIVATE_DATA);
#define XC_CAP_PRIVATE_DATA DEFINE_GUIDNAMED(XC_CAP_PRIVATE_DATA)

// Audio caps
#define STATIC_XC2_CAP_AUDIO_TYPE \
    0x59669661L, 0x13e3, 0x412d, 0xb2, 0x99, 0x4e, 0x96, 0x78, 0x1f, 0x31, 0xcf
DEFINE_GUIDSTRUCT("59669661-13E3-412d-B299-4E96781F31CF", XC2_CAP_AUDIO_TYPE);
#define XC2_CAP_AUDIO_TYPE DEFINE_GUIDNAMED(XC2_CAP_AUDIO_TYPE)
#define STATIC_XC_CAP_AUDIO_TYPE \
    0x59669661L, 0x13e3, 0x412d, 0xb2, 0x99, 0x4e, 0x96, 0x78, 0x1f, 0x31, 0xcf
DEFINE_GUIDSTRUCT("59669661-13E3-412d-B299-4E96781F31CF", XC_CAP_AUDIO_TYPE);
#define XC_CAP_AUDIO_TYPE DEFINE_GUIDNAMED(XC_CAP_AUDIO_TYPE)

#define STATIC_XC2_CAP_INPUT_AUDIO_TYPE \
    0x5d1f52c7, 0x54c5, 0x4f8a, 0xa4, 0xe2, 0x90, 0x45, 0xf9, 0x58, 0xc8, 0x6c
DEFINE_GUIDSTRUCT("5D1F52C7-54C5-4f8a-A4E2-9045F958C86C", XC2_CAP_INPUT_AUDIO_TYPE);
#define XC2_CAP_INPUT_AUDIO_TYPE DEFINE_GUIDNAMED(XC2_CAP_INPUT_AUDIO_TYPE)
#define STATIC_XC_CAP_INPUT_AUDIO_TYPE \
    0x5d1f52c7, 0x54c5, 0x4f8a, 0xa4, 0xe2, 0x90, 0x45, 0xf9, 0x58, 0xc8, 0x6c
DEFINE_GUIDSTRUCT("5D1F52C7-54C5-4f8a-A4E2-9045F958C86C", XC_CAP_INPUT_AUDIO_TYPE);
#define XC_CAP_INPUT_AUDIO_TYPE DEFINE_GUIDNAMED(XC_CAP_INPUT_AUDIO_TYPE)

#define STATIC_XC2_CAP_AUDIO_BRATE \
    0x1f73cbcaL, 0xe842, 0x4e34, 0xbc, 0xf9, 0x4a, 0x4c, 0xa6, 0xdb, 0x18, 0xf2
DEFINE_GUIDSTRUCT("1F73CBCA-E842-4e34-BCF9-4A4CA6DB18F2", XC2_CAP_AUDIO_BRATE);
#define XC2_CAP_AUDIO_BRATE DEFINE_GUIDNAMED(XC2_CAP_AUDIO_BRATE)
#define STATIC_XC_CAP_AUDIO_BRATE \
    0x1f73cbcaL, 0xe842, 0x4e34, 0xbc, 0xf9, 0x4a, 0x4c, 0xa6, 0xdb, 0x18, 0xf2
DEFINE_GUIDSTRUCT("1F73CBCA-E842-4e34-BCF9-4A4CA6DB18F2", XC_CAP_AUDIO_BRATE);
#define XC_CAP_AUDIO_BRATE DEFINE_GUIDNAMED(XC_CAP_AUDIO_BRATE)

#define STATIC_XC2_CAP_AUDIO_SRATE \
    0x96e7226dL, 0xa78d, 0x4041, 0x96, 0xf2, 0x71, 0xcb, 0x8f, 0x4f, 0x06, 0xaf
DEFINE_GUIDSTRUCT("96E7226D-A78D-4041-96F2-71CB8F4F06AF", XC2_CAP_AUDIO_SRATE);
#define XC2_CAP_AUDIO_SRATE DEFINE_GUIDNAMED(XC2_CAP_AUDIO_SRATE)
#define STATIC_XC_CAP_AUDIO_SRATE \
    0x96e7226dL, 0xa78d, 0x4041, 0x96, 0xf2, 0x71, 0xcb, 0x8f, 0x4f, 0x06, 0xaf
DEFINE_GUIDSTRUCT("96E7226D-A78D-4041-96F2-71CB8F4F06AF", XC_CAP_AUDIO_SRATE);
#define XC_CAP_AUDIO_SRATE DEFINE_GUIDNAMED(XC_CAP_AUDIO_SRATE)

#define STATIC_XC2_CAP_AUDIO_INPUT_SRATE \
    0x96e7227EL, 0xa78d, 0x4041, 0x96, 0xf2, 0x71, 0xcb, 0x8f, 0x4f, 0x06, 0xaf
DEFINE_GUIDSTRUCT("96E7227E-A78D-4041-96F2-71CB8F4F06AF", XC2_CAP_AUDIO_INPUT_SRATE);
#define XC2_CAP_AUDIO_INPUT_SRATE DEFINE_GUIDNAMED(XC2_CAP_AUDIO_INPUT_SRATE)
#define STATIC_XC_CAP_AUDIO_INPUT_SRATE \
    0x96e7227EL, 0xa78d, 0x4041, 0x96, 0xf2, 0x71, 0xcb, 0x8f, 0x4f, 0x06, 0xaf
DEFINE_GUIDSTRUCT("96E7227E-A78D-4041-96F2-71CB8F4F06AF", XC_CAP_AUDIO_INPUT_SRATE);
#define XC_CAP_AUDIO_INPUT_SRATE DEFINE_GUIDNAMED(XC_CAP_AUDIO_INPUT_SRATE)

#define STATIC_XC2_CAP_AUDIO_CHANNELS \
    0xbaa29049L, 0xa165, 0x491b, 0x99, 0x29, 0x44, 0xe2, 0x41, 0xad, 0xe7, 0x73
DEFINE_GUIDSTRUCT("BAA29049-A165-491b-9929-44E241ADE773", XC2_CAP_AUDIO_CHANNELS);
#define XC2_CAP_AUDIO_CHANNELS DEFINE_GUIDNAMED(XC2_CAP_AUDIO_CHANNELS)
#define STATIC_XC_CAP_AUDIO_CHANNELS \
    0xbaa29049L, 0xa165, 0x491b, 0x99, 0x29, 0x44, 0xe2, 0x41, 0xad, 0xe7, 0x73
DEFINE_GUIDSTRUCT("BAA29049-A165-491b-9929-44E241ADE773", XC_CAP_AUDIO_CHANNELS);
#define XC_CAP_AUDIO_CHANNELS DEFINE_GUIDNAMED(XC_CAP_AUDIO_CHANNELS)

#define STATIC_XC2_CAP_AUDIO_FRAME_CRC \
    0xd63f01e1L, 0xd62d, 0x4aa2, 0xbc, 0xd4, 0x3c, 0x26, 0x32, 0xe4, 0x1c, 0xe4
DEFINE_GUIDSTRUCT("D63F01E1-D62D-4aa2-BCD4-3C2632E41CE4", XC2_CAP_AUDIO_FRAME_CRC);
#define XC2_CAP_AUDIO_FRAME_CRC DEFINE_GUIDNAMED(XC2_CAP_AUDIO_FRAME_CRC)
#define STATIC_XC_CAP_AUDIO_FRAME_CRC \
    0xd63f01e1L, 0xd62d, 0x4aa2, 0xbc, 0xd4, 0x3c, 0x26, 0x32, 0xe4, 0x1c, 0xe4
DEFINE_GUIDSTRUCT("D63F01E1-D62D-4aa2-BCD4-3C2632E41CE4", XC_CAP_AUDIO_FRAME_CRC);
#define XC_CAP_AUDIO_FRAME_CRC DEFINE_GUIDNAMED(XC_CAP_AUDIO_FRAME_CRC)

#define STATIC_XC2_CAP_AUDIO_OUT_ID \
    0xf4e707daL, 0x6e0c, 0x4bab, 0xbc, 0x32, 0x2a, 0x6c, 0x8b, 0xc5, 0xc5, 0x0c
DEFINE_GUIDSTRUCT("F4E707DA-6E0C-4bab-BC32-2A6C8BC5C50C", XC2_CAP_AUDIO_OUT_ID);
#define XC2_CAP_AUDIO_OUT_ID DEFINE_GUIDNAMED(XC2_CAP_AUDIO_OUT_ID)
#define STATIC_XC_CAP_AUDIO_OUT_ID \
    0xf4e707daL, 0x6e0c, 0x4bab, 0xbc, 0x32, 0x2a, 0x6c, 0x8b, 0xc5, 0xc5, 0x0c
DEFINE_GUIDSTRUCT("F4E707DA-6E0C-4bab-BC32-2A6C8BC5C50C", XC_CAP_AUDIO_OUT_ID);
#define XC_CAP_AUDIO_OUT_ID DEFINE_GUIDNAMED(XC_CAP_AUDIO_OUT_ID)

#define STATIC_XC2_CAP_AUDIO_IN_ID \
    0x4a4f7218, 0x45bd, 0x400e, 0xb0, 0x18, 0xd4, 0xf9, 0x88, 0xf9, 0x7, 0x66
DEFINE_GUIDSTRUCT("4A4F7218-45BD-400e-B018-D4F988F90766", XC2_CAP_AUDIO_IN_ID);
#define XC2_CAP_AUDIO_IN_ID DEFINE_GUIDNAMED(XC2_CAP_AUDIO_IN_ID)
#define STATIC_XC_CAP_AUDIO_IN_ID \
    0x4a4f7218, 0x45bd, 0x400e, 0xb0, 0x18, 0xd4, 0xf9, 0x88, 0xf9, 0x7, 0x66
DEFINE_GUIDSTRUCT("4A4F7218-45BD-400e-B018-D4F988F90766", XC_CAP_AUDIO_IN_ID);
#define XC_CAP_AUDIO_IN_ID DEFINE_GUIDNAMED(XC_CAP_AUDIO_IN_ID)

//added for new AUDIO_FLAG_XCMINI_I2S_MSTR_MODE
#define STATIC_XC2_CAP_AUDIO_XCMINI_I2S_MSTR_MODE \
    0xE1F2980F, 0xD3D6, 0x46EC, 0x80, 0x39, 0xAA, 0xF6, 0xB0, 0x4E, 0x05, 0xD6
DEFINE_GUIDSTRUCT("E1F2980F-D3D6-46EC-8039-AAF6B04E05D6", XC2_CAP_AUDIO_XCMINI_I2S_MSTR_MODE);
#define XC2_CAP_AUDIO_XCMINI_I2S_MSTR_MODE DEFINE_GUIDNAMED(XC2_CAP_AUDIO_XCMINI_I2S_MSTR_MODE)
#define STATIC_XC_CAP_AUDIO_XCMINI_I2S_MSTR_MODE \
    0xE1F2980F, 0xD3D6, 0x46EC, 0x80, 0x39, 0xAA, 0xF6, 0xB0, 0x4E, 0x05, 0xD6
DEFINE_GUIDSTRUCT("E1F2980F-D3D6-46EC-8039-AAF6B04E05D6", XC_CAP_AUDIO_XCMINI_I2S_MSTR_MODE);
#define XC_CAP_AUDIO_XCMINI_I2S_MSTR_MODE DEFINE_GUIDNAMED(XC_CAP_AUDIO_XCMINI_I2S_MSTR_MODE)

// System caps
#define STATIC_XC2_CAP_SYSTEM_FORMAT \
    0x344ff243L, 0x3369, 0x40c8, 0xa4, 0xbc, 0x68, 0x5c, 0xa9, 0xab, 0xb7, 0x48
DEFINE_GUIDSTRUCT("344FF243-3369-40c8-A4BC-685CA9ABB748", XC2_CAP_SYSTEM_FORMAT);
#define XC2_CAP_SYSTEM_FORMAT DEFINE_GUIDNAMED(XC2_CAP_SYSTEM_FORMAT)
#define STATIC_XC_CAP_SYSTEM_FORMAT \
    0x344ff243L, 0x3369, 0x40c8, 0xa4, 0xbc, 0x68, 0x5c, 0xa9, 0xab, 0xb7, 0x48
DEFINE_GUIDSTRUCT("344FF243-3369-40c8-A4BC-685CA9ABB748", XC_CAP_SYSTEM_FORMAT);
#define XC_CAP_SYSTEM_FORMAT DEFINE_GUIDNAMED(XC_CAP_SYSTEM_FORMAT)

#define STATIC_XC2_CAP_SYSTEM_BITRATE \
    0x34b66d90L, 0x2171, 0x4319, 0xa2, 0x49, 0x4d, 0x05, 0x44, 0x91, 0xfa, 0xa4
DEFINE_GUIDSTRUCT("34B66D90-2171-4319-A249-4D054491FAA4", XC2_CAP_SYSTEM_BITRATE);
#define XC2_CAP_SYSTEM_BITRATE DEFINE_GUIDNAMED(XC2_CAP_SYSTEM_BITRATE)
#define STATIC_XC_CAP_SYSTEM_BITRATE \
    0x34b66d90L, 0x2171, 0x4319, 0xa2, 0x49, 0x4d, 0x05, 0x44, 0x91, 0xfa, 0xa4
DEFINE_GUIDSTRUCT("34B66D90-2171-4319-A249-4D054491FAA4", XC_CAP_SYSTEM_BITRATE);
#define XC_CAP_SYSTEM_BITRATE DEFINE_GUIDNAMED(XC_CAP_SYSTEM_BITRATE)

#define STATIC_XC2_CAP_MUX_PACK_SIZE \
    0xcb480eb9L, 0xa835, 0x4730, 0xa5, 0x9c, 0xec, 0xce, 0x4d, 0xe2, 0x57, 0x4f
DEFINE_GUIDSTRUCT("CB480EB9-A835-4730-A59C-ECCE4DE2574F", XC2_CAP_MUX_PACK_SIZE);
#define XC2_CAP_MUX_PACK_SIZE DEFINE_GUIDNAMED(XC2_CAP_MUX_PACK_SIZE)
#define STATIC_XC_CAP_MUX_PACK_SIZE \
    0xcb480eb9L, 0xa835, 0x4730, 0xa5, 0x9c, 0xec, 0xce, 0x4d, 0xe2, 0x57, 0x4f
DEFINE_GUIDSTRUCT("CB480EB9-A835-4730-A59C-ECCE4DE2574F", XC_CAP_MUX_PACK_SIZE);
#define XC_CAP_MUX_PACK_SIZE DEFINE_GUIDNAMED(XC_CAP_MUX_PACK_SIZE)

#define STATIC_XC2_CAP_TIMESTAMP_MODE \
    0xa1a131d8L, 0xd761, 0x4771, 0x85, 0xf4, 0xf6, 0x72, 0x4a, 0x3b, 0x75, 0xcb
DEFINE_GUIDSTRUCT("A1A131D8-D761-4771-85F4-F6724A3B75CB", XC2_CAP_TIMESTAMP_MODE);
#define XC2_CAP_TIMESTAMP_MODE DEFINE_GUIDNAMED(XC2_CAP_TIMESTAMP_MODE)
#define STATIC_XC_CAP_TIMESTAMP_MODE \
    0xa1a131d8L, 0xd761, 0x4771, 0x85, 0xf4, 0xf6, 0x72, 0x4a, 0x3b, 0x75, 0xcb
DEFINE_GUIDSTRUCT("A1A131D8-D761-4771-85F4-F6724A3B75CB", XC_CAP_TIMESTAMP_MODE);
#define XC_CAP_TIMESTAMP_MODE DEFINE_GUIDNAMED(XC_CAP_TIMESTAMP_MODE)

#define STATIC_XC2_CAP_INIT_TIMESTAMP \
    0xd4865d08L, 0x85f1, 0x4dbb, 0x84, 0x0d, 0xc6, 0xe1, 0xf1, 0x8b, 0x43, 0xeb
DEFINE_GUIDSTRUCT("D4865D08-85F1-4dbb-840D-C6E1F18B43EB", XC2_CAP_INIT_TIMESTAMP);
#define XC2_CAP_INIT_TIMESTAMP DEFINE_GUIDNAMED(XC2_CAP_INIT_TIMESTAMP)
#define STATIC_XC_CAP_INIT_TIMESTAMP \
    0xd4865d08L, 0x85f1, 0x4dbb, 0x84, 0x0d, 0xc6, 0xe1, 0xf1, 0x8b, 0x43, 0xeb
DEFINE_GUIDSTRUCT("D4865D08-85F1-4dbb-840D-C6E1F18B43EB", XC_CAP_INIT_TIMESTAMP);
#define XC_CAP_INIT_TIMESTAMP DEFINE_GUIDNAMED(XC_CAP_INIT_TIMESTAMP)

// Dynamic bit rate change
#define STATIC_XC2_CAP_DYNBITRATECHG_SUPPORTED \
    0xBB4FAA02L, 0x596C, 0x4129, 0x8F, 0xB3, 0x74, 0xE7, 0x54, 0x21, 0xFA, 0x02
DEFINE_GUIDSTRUCT("BB4FAA02-596C-4129-8FB3-74E75421FA02", XC2_CAP_DYNBITRATECHG_SUPPORTED);
#define XC2_CAP_DYNBITRATECHG_SUPPORTED DEFINE_GUIDNAMED(XC2_CAP_DYNBITRATECHG_SUPPORTED)
#define STATIC_XC_CAP_DYNBITRATECHG_SUPPORTED \
    0xBB4FAA02L, 0x596C, 0x4129, 0x8F, 0xB3, 0x74, 0xE7, 0x54, 0x21, 0xFA, 0x02
DEFINE_GUIDSTRUCT("BB4FAA02-596C-4129-8FB3-74E75421FA02", XC_CAP_DYNBITRATECHG_SUPPORTED);
#define XC_CAP_DYNBITRATECHG_SUPPORTED DEFINE_GUIDNAMED(XC_CAP_DYNBITRATECHG_SUPPORTED)


// PIDs for Transcoder
#define STATIC_XC2_CAP_AUDIOIN_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x00
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF00", XC2_CAP_AUDIOIN_PID);
#define XC2_CAP_AUDIOIN_PID DEFINE_GUIDNAMED(XC2_CAP_AUDIOIN_PID)
#define STATIC_XC_CAP_AUDIO_IN_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x00
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF00", XC_CAP_AUDIO_IN_PID);
#define XC_CAP_AUDIO_IN_PID DEFINE_GUIDNAMED(XC_CAP_AUDIO_IN_PID)

#define STATIC_XC2_CAP_AUDIOOUT_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x01
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF01", XC2_CAP_AUDIOOUT_PID);
#define XC2_CAP_AUDIOOUT_PID DEFINE_GUIDNAMED(XC2_CAP_AUDIOOUT_PID)
#define STATIC_XC_CAP_AUDIO_OUT_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x01
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF01", XC_CAP_AUDIO_OUT_PID);
#define XC_CAP_AUDIO_OUT_PID DEFINE_GUIDNAMED(XC_CAP_AUDIO_OUT_PID)

#define STATIC_XC2_CAP_VIDEOIN_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x02
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF02", XC2_CAP_VIDEOIN_PID);
#define XC2_CAP_VIDEOIN_PID DEFINE_GUIDNAMED(XC2_CAP_VIDEOIN_PID)
#define STATIC_XC_CAP_VIDEO_IN_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x02
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF02", XC_CAP_VIDEO_IN_PID);
#define XC_CAP_VIDEO_IN_PID DEFINE_GUIDNAMED(XC_CAP_VIDEO_IN_PID)

#define STATIC_XC2_CAP_VIDEOOUT_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x03
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF03", XC2_CAP_VIDEOOUT_PID);
#define XC2_CAP_VIDEOOUT_PID DEFINE_GUIDNAMED(XC2_CAP_VIDEOOUT_PID)
#define STATIC_XC_CAP_VIDEO_OUT_PID \
    0xeec4b610, 0xa4d, 0x4ae0, 0x86, 0xed, 0x99, 0x5c, 0xa5, 0x9c, 0xdf, 0x03
DEFINE_GUIDSTRUCT("EEC4B610-0A4D-4ae0-86ED-995CA59CDF03", XC_CAP_VIDEO_OUT_PID);
#define XC_CAP_VIDEO_OUT_PID DEFINE_GUIDNAMED(XC_CAP_VIDEO_OUT_PID)

// Capture filter caps
#define STATIC_XC2_CAP_VIDEO_FILTER_CAPS \
    0x3d92e4bb, 0x1f5d, 0x414c, 0x9a, 0x57, 0x98, 0x3, 0x8a, 0x75, 0xa2, 0x3a
DEFINE_GUIDSTRUCT("3D92E4BB-1F5D-414c-9A57-98038A75A23A", XC2_CAP_VIDEO_FILTER_CAPS);
#define XC2_CAP_VIDEO_FILTER_CAPS DEFINE_GUIDNAMED(XC2_CAP_VIDEO_FILTER_CAPS)
#define STATIC_XC_CAP_VIDEO_FILTER_CAPS \
    0x3d92e4bb, 0x1f5d, 0x414c, 0x9a, 0x57, 0x98, 0x3, 0x8a, 0x75, 0xa2, 0x3a
DEFINE_GUIDSTRUCT("3D92E4BB-1F5D-414c-9A57-98038A75A23A", XC_CAP_VIDEO_FILTER_CAPS);
#define XC_CAP_VIDEO_FILTER_CAPS DEFINE_GUIDNAMED(XC_CAP_VIDEO_FILTER_CAPS)

#define STATIC_XC2_CAP_VIDEO_FILTERS \
    0x3d92e4bb, 0x1f5d, 0x414c, 0x9a, 0x57, 0x98, 0x3, 0x8a, 0x75, 0xa2, 0x3b
DEFINE_GUIDSTRUCT("3D92E4BB-1F5D-414c-9A57-98038A75A23B", XC2_CAP_VIDEO_FILTERS);
#define XC2_CAP_VIDEO_FILTERS DEFINE_GUIDNAMED(XC2_CAP_VIDEO_FILTERS)
#define STATIC_XC_CAP_VIDEO_FILTERS \
    0x3d92e4bb, 0x1f5d, 0x414c, 0x9a, 0x57, 0x98, 0x3, 0x8a, 0x75, 0xa2, 0x3b
DEFINE_GUIDSTRUCT("3D92E4BB-1F5D-414c-9A57-98038A75A23B", XC_CAP_VIDEO_FILTERS);
#define XC_CAP_VIDEO_FILTERS DEFINE_GUIDNAMED(XC_CAP_VIDEO_FILTERS)

//MPEG4 Quant Type for Encoder and Transcoder Filters
#define STATIC_XC_CAP_MPEG4_QUANT_TYPE \
    0x78470111, 0x127, 0x411a, 0x94, 0x40, 0x65, 0x6c, 0xde, 0x3b, 0x47, 0x67
DEFINE_GUIDSTRUCT("78470111-0127-411A-9440-656CDE3B4767", XC_CAP_MPEG4_QUANT_TYPE);
#define XC_CAP_MPEG4_QUANT_TYPE DEFINE_GUIDNAMED(XC_CAP_MPEG4_QUANT_TYPE)

// Query for Mirroring Capabilities (only valid for Encoder fitlers)
#define STATIC_XC_CAP_MIRROR_CAPS \
    0xa1b9bfc7, 0xba8c, 0x11da, 0x95, 0x9b, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f
DEFINE_GUIDSTRUCT("A1B9BFC7-BA8C-11DA-959B-00E08161165F", XC_CAP_MIRROR_CAPS);
#define XC_CAP_MIRROR_CAPS DEFINE_GUIDNAMED(XC_CAP_MIRROR_CAPS)

// Enable Mirror (only valid for Encoder fitlers)
#define STATIC_XC_CAP_ENABLE_MIRROR \
    0xa8c14bbd, 0x9788, 0x11da, 0x95, 0x6e, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f
DEFINE_GUIDSTRUCT("A8C14BBD-9788-11DA-956E-00E08161165F", XC_CAP_ENABLE_MIRROR);
#define XC_CAP_ENABLE_MIRROR DEFINE_GUIDNAMED(XC_CAP_ENABLE_MIRROR)


///////////////////////////////////////////////////////////////////////////////
// 'Missing' KS types (should be in ksmedia.h)

typedef struct tagKS_DATAFORMAT_MPEGVIDEOINFO2
{
    KSDATAFORMAT            DataFormat;
    KS_MPEGVIDEOINFO2       MPEGVideoInfo2;
} KS_DATAFORMAT_MPEGVIDEOINFO2, *PKS_DATAFORMAT_MPEGVIDEOINFO2;

#ifndef STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO
// MEDIATYPE_AnalogAudio
#define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO\
    0x0482DEE1L, 0x7817, 0x11cf, 0x8a, 0x03, 0x00, 0xaa, 0x00, 0x6e, 0xcb, 0x65
DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65", KSDATAFORMAT_TYPE_ANALOGAUDIO);
#define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO)
#endif

#ifndef __ENCODER_API_GUIDS__
#define __ENCODER_API_GUIDS__

#define STATIC_ENCAPIPARAM_BITRATE \
    0x49cc4c43, 0xca83, 0x4ad4, 0xa9, 0xaf, 0xf3, 0x69, 0x6a, 0xf6, 0x66, 0xdf
DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF", ENCAPIPARAM_BITRATE);
#define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE)

#define STATIC_ENCAPIPARAM_PEAK_BITRATE \
    0x703f16a9, 0x3d48, 0x44a1, 0xb0, 0x77, 0x1, 0x8d, 0xff, 0x91, 0x5d, 0x19
DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19", ENCAPIPARAM_PEAK_BITRATE);
#define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE)

#define STATIC_ENCAPIPARAM_BITRATE_MODE \
    0xee5fb25c, 0xc713, 0x40d1, 0x9d, 0x58, 0xc0, 0xd7, 0x24, 0x1e, 0x25, 0xf
DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F", ENCAPIPARAM_BITRATE_MODE);
#define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE)

#endif // __ENCODER_API_GUIDS__


///////////////////////////////////////////////////////////////////////////////
// 'Missing' KS category GUID (should be in ks.h)

#define STATIC_KSCATEGORY_VIDEOCAPTURE \
    0x860BB310, 0x5D01, 0x11d0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86
DEFINE_GUIDSTRUCT("860BB310-5D01-11d0-BD3B-00A0C911CE86", KSCATEGORY_VIDEOCAPTURE);
#define KSCATEGORY_VIDEOCAPTURE DEFINE_GUIDNAMED(KSCATEGORY_VIDEOCAPTURE)

#define STATIC_KSCATEGORY_AUDIOCAPTURE \
    0x33D9A762, 0x90C8, 0x11d0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86
DEFINE_GUIDSTRUCT("33D9A762-90C8-11d0-BD43-00A0C911CE86", KSCATEGORY_AUDIOCAPTURE);
#define KSCATEGORY_AUDIOCAPTURE DEFINE_GUIDNAMED(KSCATEGORY_AUDIOCAPTURE)


#ifndef STATIC_CODECAPI_CHANGELISTS
#define STATIC_CODECAPI_CHANGELISTS \
    0x62b12acf, 0xf6b0, 0x47d9, 0x94, 0x56, 0x96, 0xf2, 0x2c, 0x4e, 0x0b, 0x9d
DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D", CODECAPI_CHANGELISTS );
#define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS )
#endif

#ifndef STATIC_CODECAPI_VIDEO_ENCODER
#define STATIC_CODECAPI_VIDEO_ENCODER \
    0x7112e8e1, 0x3d03, 0x47ef, 0x8e, 0x60, 0x03, 0xf1, 0xcf, 0x53, 0x73, 0x01
DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301", CODECAPI_VIDEO_ENCODER );
#define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER )
#endif

#ifndef STATIC_CODECAPI_AUDIO_ENCODER
#define STATIC_CODECAPI_AUDIO_ENCODER \
    0xb9d19a3e, 0xf897, 0x429c, 0xbc, 0x46, 0x81, 0x38, 0xb7, 0x27, 0x2b, 0x2d
DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D", CODECAPI_AUDIO_ENCODER );
#define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER )
#endif

#ifndef STATIC_CODECAPI_SETALLDEFAULTS
#define STATIC_CODECAPI_SETALLDEFAULTS \
    0x6c5e6a7c, 0xacf8, 0x4f55, 0xa9, 0x99, 0x1a, 0x62, 0x81, 0x09, 0x05, 0x1b
DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B", CODECAPI_SETALLDEFAULTS );
#define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS )
#endif

#ifndef STATIC_CODECAPI_ALLSETTINGS
#define STATIC_CODECAPI_ALLSETTINGS \
    0x6a577e92, 0x83e1, 0x4113, 0xad, 0xc2, 0x4f, 0xce, 0xc3, 0x2f, 0x83, 0xa1
DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1", CODECAPI_ALLSETTINGS );
#define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS )
#endif

#ifndef STATIC_CODECAPI_SUPPORTSEVENTS
#define STATIC_CODECAPI_SUPPORTSEVENTS \
    0x0581af97, 0x7693, 0x4dbd, 0x9d, 0xca, 0x3f, 0x9e, 0xbd, 0x65, 0x85, 0xa1
DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1", CODECAPI_SUPPORTSEVENTS );
#define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS )
#endif

#ifndef STATIC_CODECAPI_CURRENTCHANGELIST
#define STATIC_CODECAPI_CURRENTCHANGELIST \
    0x1cb14e83, 0x7d72, 0x4657, 0x83, 0xfd, 0x47, 0xa2, 0xc5, 0xb9, 0xd1, 0x3d
DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D", CODECAPI_CURRENTCHANGELIST );
#define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST )
#endif

///////////////////////////////////////////////////////////////////////////////
// Tuner & Decoder lib I/F structure IDs

#define STATIC_XCLIB_TUNER_PROPERTY \
    0x4c2b73e7, 0x17c1, 0x4d53, 0x81, 0x34, 0x4e, 0x7f, 0xe5, 0x6e, 0x9f, 0xac
DEFINE_GUIDSTRUCT("4C2B73E7-17C1-4d53-8134-4E7FE56E9FAC", XCLIB_TUNER_PROPERTY);
#define XCLIB_TUNER_PROPERTY DEFINE_GUIDNAMED(XCLIB_TUNER_PROPERTY)

#define STATIC_XCLIB_DECODER_PROPERTY \
    0x9efae82b, 0xa9d5, 0x4983, 0xb2, 0x13, 0xe9, 0x4, 0x49, 0xc9, 0xf4, 0xd9
DEFINE_GUIDSTRUCT("9EFAE82B-A9D5-4983-B213-E90449C9F4D9", XCLIB_DECODER_PROPERTY);
#define XCLIB_DECODER_PROPERTY DEFINE_GUIDNAMED(XCLIB_DECODER_PROPERTY)

#define STATIC_XCLIB_BDATUNER_PROPERTY \
    0xfd3a2b2f, 0x6312, 0x4542, 0x89, 0x92, 0xa3, 0x21, 0x1d, 0x61, 0x84, 0x69
DEFINE_GUIDSTRUCT("FD3A2B2F-6312-4542-8992-A3211D618469", XCLIB_BDATUNER_PROPERTY);
#define XCLIB_BDATUNER_PROPERTY DEFINE_GUIDNAMED(XCLIB_BDATUNER_PROPERTY)


#endif // #ifndef __XCGUIDS_H__INC_
